2017-08-29 2 views
2

J'essaie de créer une application très simple qui va juste sortir l'objet JSON brut d'une API. Donc je veux une fonction qui prendra un paramètre url et retournera idéalement la chaîne JSON.Elm obtient une chaîne JSON brute

J'ai le code suivant:

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 

Mais j'ai du mal à comprendre la partie décodeur de la fonction. Si quelqu'un pouvait m'aider, ce serait génial.

Répondre

6

Si vous voulez simplement obtenir la réponse HTTP en tant que valeur de chaîne, utilisez Http.getString. L'exemple que vous avez posté en utilisant Http.get suppose que le résultat est en JSON et vous force à le décoder en une valeur Elm.

Voici un exemple modifié du code random cat generator qui affiche une copie du contenu de la réponse JSON au lieu d'une image de chat:

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) 

Voici une working example on ellie-app.com