Een HTTP-verzoek verzenden

Elm:
Een HTTP-verzoek verzenden

Hoe te:

Oké, tijd voor code. Elm maakt HTTP-verzoeken met behulp van de Http module. Hier is een snel voorbeeld om wat JSON op te halen:

import Http
import Json.Decode as Decode

type alias User =
    { id : Int
    , username : String
    }

userDecoder : Decode.Decoder User
userDecoder =
    Decode.map2 User
        (Decode.field "id" Decode.int)
        (Decode.field "username" Decode.string)

fetchUser : Cmd Msg
fetchUser =
    Http.get
        { url = "https://api.example.com/user/1"
        , decoder = userDecoder
        }
        |> Http.send UserFetched

type Msg
    = UserFetched (Result Http.Error User)

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    geval msg van
        UserFetched (Ok user) ->
            ({ model | user = Just user }, Cmd.none)

        UserFetched (Err _) ->
            (model, Cmd.none)

Voorbeeldoutput wanneer UserFetched een Ok user is:

{ id = 1, username = "ElmerFudd" }

Diepgaande duik

Het verzenden van HTTP-verzoeken is niet nieuw; het is de ruggengraat van webcommunicatie sinds de jaren 90. Elm verpakt de complexiteit in de gebruiksvriendelijke Http module, met de nadruk op veiligheid en eenvoud. In tegenstelling tot de vroege dagen, abstraheert Elm de rommelige delen zoals XMLHttprequest en JSON-parsing weg. Alternatieven zoals het direct gebruiken van JavaScripts Fetch API of XMLHttpRequest zijn mogelijk met poorten, maar Elm’s ingebouwde manier houdt je code type-veilig en puur. Het behandelt bijeffecten via zijn krachtige architectuur zonder de betrouwbaarheid van je app in gevaar te brengen.

Zie Ook

Voor meer gedetailleerde uitleg en probleemoplossing, bekijk deze bronnen: