IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

ServantのFormサンプル

POSTFormデータを送信するServantの実装サンプルを、本家サイトも含めて探していたのですが、見つけられませんでした。結果的にはとっても簡単でした。FromFormインスタンスにするだけでした。

data Res = Res { ret :: Int} deriving (Eq, Show, Generic) -- Formデータを受け取るデータ構造

instance FromForm Req --- FromFormのインスタンスにする。

Servant Form Sample

実行

$ 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)