Skicka en http-förfrågan

Elm:
Skicka en http-förfrågan

Hur man gör:

import Http
import Json.Decode as Decode

type Msg
    = GotResponse (Result Http.Error String)

-- Definiera hur svaret ska tolkas
responseDecoder : Decode.Decoder String
responseDecoder =
    Decode.string

-- Skicka en HTTP GET-begäran
sendRequest : Cmd Msg
sendRequest =
    Http.get
        { url = "https://api.exempel.se/data"
        , expect = Http.expectString GotResponse responseDecoder
        }

-- Hanterar svaret i update-funktionen
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        GotResponse (Ok data) ->
            ({ model | data = data }, Cmd.none)

        GotResponse (Err error) ->
            (model, Cmd.none)

-- Starta begäran från init eller någonstans
init : () -> (Model, Cmd Msg)
init _ =
    (initialModel, sendRequest)

Djupdykning

HTTP-begäran är en fundamental del av webbutveckling. I Elm hanteras detta elegant med hjälp av Http-modulens funktioner. Det hela började med Elm 0.18, som introducerade Http-paketet och dess tillvägagångssätt för att hantera effekter i en ren och funktionell stil. Alternativ till Elm’s inbyggda bibliotek innefattar tredjeparts-paket, men dessa används sällan tack vare Elm’s robusta kärnbibliotek. När du använder Http.get eller Http.post skapas kommandon (Cmd Msg) som hanteras av Elm’s runtime för att utföra sidoeffekter. Detta upprätthåller Elm’s arkitektur där all kod är ren och sidoeffektfri, medan fortfarande möjliggör interaktioner som HTTP-begäran.

Se Även