TL;DR

Mocket は BodyReader トレイトの実装を使ってリクエストボディをデシリアライズする。

内容

BodyReader トレイト

BodyReader は HttpRequest から自分の型の値を作る from_request を持つ。

pub(open) trait BodyReader {
  from_request(req : HttpRequest) -> Self raise
}

次の型には最初から実装がある。

  • テキスト: String、StringView
  • JSON: Json
  • バイナリ: Bytes
  • 配列: Array、FixedArray

独自の型への実装

独自の型に BodyReader を実装すれば、リクエストボディをその型として受け取れる。次は CSV を受け取る例である。

impl @mocket.BodyReader for Csv with from_request(req) -> Csv {
  let text : String = req.body()
  Csv(text)
}

キーワード

  • Mocket
  • デシリアライズ

関連