Надсилання HTTP-запиту

Elm:
Надсилання HTTP-запиту

Що й Навіщо?

В Elm, відправлення HTTP запиту дозволяє твоїй програмі комунікувати з веб-серверами. Це критично для завантаження даних, авторизації користувачів, відправлення форм.

How to:

Як це зробити:

import Http
import Json.Decode as Decode

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

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

getUser : Cmd Msg
getUser =
    Http.get
        { url = "https://example.com/user"
        , expect = Http.expectJson GotUser userDecoder
        }

type Msg
    = GotUser (Result Http.Error User)

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        GotUser (Ok user) ->
            ({ model | user = Just user }, Cmd.none)

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

Запит getUser видасть повідомлення GotUser з результатом.

Deep Dive

Поглиблений Занурення

Elm’s HTTP бібліотека є надійним та тип-безпечним способом взаємодії з API. У 2016 році, Elm переосмислив обробку побічних ефектів з “Elm Architecture”, де HTTP виклики стали командами (Cmd). Альтернативою Elm є JavaScript з axios чи fetch, але без гарантій безпеки типів. В Elm, ти описуєш очікуваний вигляд даних за допомогою декодерів, забезпечуючи додаткову впевненість в правильності даних.

See Also

Дивіться Також