2017-08-29 87 views
2

我想构建一个非常简单的应用程序,将只输出一个API的原始JSON对象。榆树获得原始JSON字符串

所以我想要一个函数,将采取一个URL参数,理想情况下返回JSON字符串。

我有以下代码:

decode: String -> String 
decode jsonString = 
    Decode.decodeString jsonString 

apiResonse : String -> String 
apiResonse url = 
    let 
    url = "https://api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=cats" 
    request = Http.get Decode.decodeString url 
    in 
    Http.send NewRequest request 

但我努力理解函数的解码器部分。如果任何人都可以帮助我,那会很棒。

回答

6

如果您只是希望将HTTP响应作为字符串值使用,请使用Http.getString。您使用Http.get发布的示例假定结果是使用JSON并强制您将其解码为Elm值。

这里是random cat generator代码只显示响应JSON的转储,而不是一个猫的图像的方式的变形例:

getRandomGif : String -> Cmd Msg 
getRandomGif topic = 
    let 
    url = 
     "https://api.giphy.com/v1/gifs/random?api_key=dc6zaTOxFJmzC&tag=" ++ topic 
    in 
    Http.send NewGif (Http.getString url) 

这里是一个working example on ellie-app.com