読者です 読者をやめる 読者になる 読者になる

IT練習ノート

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

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で指定される型の対応を地道に辿っていくことです。

Servant Type Transition from API to Handler