2017-08-29 82 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