ServantのFormサンプル
POST
でForm
データを送信するServant
の実装サンプルを、本家サイトも含めて探していたのですが、見つけられませんでした。結果的にはとっても簡単でした。FromForm
のインスタンスにするだけでした。
data Res = Res { ret :: Int} deriving (Eq, Show, Generic) -- Formデータを受け取るデータ構造 instance FromForm Req --- FromFormのインスタンスにする。
実行
$ curl -w '\n' 'http://localhost:8081/add' --data 'x=1&y=1' -XPOST {"ret":2}
送信したデータの型が不正の場合は400
となる。
$ curl http://127.0.0.1:8081/add -d "x=1&y=a" -XPOST could not parse: `a' (input does not start with a digit)