HTTPリクエストの送信

Elm:
HTTPリクエストの送信

How to: (方法)

import Http
import Json.Decode as Decode

type Msg
    = GotData (Result Http.Error String)

getData : Cmd Msg
getData =
    Http.get
        { url = "https://api.example.com/data"
        , expect = Http.expectString GotData
        }

-- JSONデコーダの例
type alias Data =
    { id : Int
    , title : String
    }

dataDecoder : Decode.Decoder Data
dataDecoder =
    Decode.map2 Data
        (Decode.field "id" Decode.int)
        (Decode.field "title" Decode.string)

getDataWithDecoder : Cmd Msg
getDataWithDecoder =
    Http.get
        { url = "https://api.example.com/data"
        , expect = Http.expectJson GotData dataDecoder
        }

Deep Dive (詳細)

HTTPリクエストをElmで送るときは、Httpモジュールを使います。これは、Elmアーキテクチャーに沿う非同期イベントの扱い方を提供します。Elmはバージョンアップを重ね、より安全で使いやすいAPIを提供しています。例えば、初期バージョンのElmではHTTPリクエストはより複雑で、エラーハンドリングが現在ほど洗練されていませんでした。他の言語と異なり、Elmではランタイムエラーを避ける設計がされており、HTTPリクエストの処理もその哲学に従います。また、JSONのデコーディングには、Json.Decodeモジュールが利用され、コンパイル時にデータの構造が確認されます。これにより、ランタイム時のエラーを抑制しています。

See Also (関連情報)