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 (関連情報)
- Elm公式ドキュメントのHTTPガイド: https://guide.elm-lang.org/effects/http.html
- ElmのHTTPパッケージ: https://package.elm-lang.org/packages/elm/http/latest/
- JSONデコーディングの詳細: https://guide.elm-lang.org/effects/json.html