std:http リファレンス
@import 'std:http' で取得する HTTP 共通型モジュール。Request / Response / Handler を型メンバーとして export し、std:http/client・std:http/server と将来のルーター・middleware ライブラリが形を共有する。
Handler
{ Request | Response }
Request 1 個を受け取り Response を返す関数型。std:http/server の serve が
要求する契約で、ルーター・middleware ライブラリがこの型に依存して書ける。
>>> http := @import "std:http" >>> handler : http.Handler := {req | { status := 200 |}}
Request
{ method: String, path: String, query: String, headers, body: String, body_bytes: Bytes |}
std:http/server のハンドラが受け取るリクエストレコードの構造的型。
各スロットの意味は std:http/server が正とする。
>>> http := @import "std:http" >>> handler := {req : http.Request | req.method}
Response
{ status: Int |}
ハンドラが返す応答の最小契約。status のみを要求し、headers / body /
body_bytes は任意スロット。構造的照合は幅サブタイプなので、std:http/client の
応答レコードもそのままこの型を満たす。