ServantのAPIからHandlerへの型の流れを確認する
Servant
のチュートリアルでは、2.2.3でチートシートのように説明されています。
https://media.readthedocs.org/pdf/haskell-servant/v0.6/haskell-servant.pdf
combinator | handelrのパラメータ | 補足 |
---|---|---|
Capture “something” a | a | |
QueryParam “something” a | Maybe a | |
Header “something” a | Maybe a | |
QueryFlag “something” | Bool | |
QueryParams “something” | [a] | |
ReqBody contentTypes a | a | |
Delete, Get, Patch, Post, Put | ExceptT ServantErr IO |
これはハンドラそのも |
この点の理解ができていなかったので、ServantでHandlerのパラメータどのように作られるか型を辿って確認してみました。
ポイントはtype family
で指定される型の対応を地道に辿っていくことです。