Ich versuche, einige JSON aus einer HTTP-Anfrage kommen zu dekodieren, aber ich laufe immer wieder in Syntaxprobleme. Dies ist der Fehler, den ich vom Compiler erhalten:Elm Json Decoder Pipeline Fehler
-- TYPE MISMATCH ------------------------------------------------------ [7/1811$
The 2nd argument to function `send` is causing a mismatch.
65| Http.send CardFetch (Http.get url modelDecoder)
^^^^^^^^^^^^^^^^^^^^^^^^^
Function `send` is expecting the 2nd argument to be:
Http.Request String
But it is:
Http.Request Model
Hier ist mein Code:
module Main exposing (..)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Http
import Json.Decode as Decode exposing (string, Decoder, at, index)
import Json.Decode.Pipeline exposing (..)
main : Program Never Model Msg
main =
program
{ init = init
, view = view
, update = update
, subscriptions = subscriptions
}
type alias Model =
{ boardName : String
, cardName : String
}
init =
(Model "Default Board" "Default Card"
, Cmd.none
)
-- UPDATE
type Msg
= CardFetch (Result Http.Error String)
| DataFetch
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
DataFetch ->
(model, getData)
CardFetch (Ok incomingName) ->
(Model model.cardName incomingName, Cmd.none)
CardFetch (Err errorMessage) ->
(model, Debug.log "Errors" Cmd.none)
-- HTTP
url : String
url =
"https://api.trello.com/1/members/user/actions?limit=3&key=..."
getData =
Http.send CardFetch (Http.get url modelDecoder)
{--decodeCard =
Decode.index 0
modelDecoder
(Decode.at
[ "data", "card", "name" ]
string
)
--}
modelDecoder : Decoder Model
modelDecoder =
decode Model
|> custom (index 0 (at [ "data", "card", "name" ] string))
|> custom (index 0 (at [ "data", "board", "name" ] string))
--UPDATE
-- VIEW
view : Model -> Html Msg
view model =
div []
[ div []
[ button [ onClick DataFetch ] [ text "Get Card" ] ]
, div [ class "card" ]
[ h3 [] [ text model.boardName ]
, div [ class "board" ] [ h4 [] [ text model.cardName ] ]
]
]
-- SUBSCRIPTIONS
subscriptions : Model -> Sub Msg
subscriptions model =
Sub.none
Ich bin bin ziemlich neu in Elm und ich versuche, herauszufinden, wie API Arbeit nennt. Elm Dokumentation ist ausgezeichnet, aber das bisschen über API-Anrufe ist irgendwie vage. Ich würde jede Hilfe schätzen, die ich bekommen kann. Danke vielmals!