受基本身份验证保护的API
type SubApi = API1 :<|> API2 :<|> API3
type API = BasicAuth "foo-realm" AuthData :> SubApi
Run Code Online (Sandbox Code Playgroud)
支持类型的处理程序AuthData -> Handler a.
我有一组处理程序:
handler1 :: Request1 -> AuthMonad Response
handler2 :: Request2 -> AuthMonad Response
Run Code Online (Sandbox Code Playgroud)
它在AuthMonad中运行,这是一个ReaderT,其上下文部分来自AuthData.使用enter和AuthMonad :~> Handler,我可以获得Server API类型的支持处理程序AuthData -> AuthMonad,但我真正想要做的是使用AuthData参数作为runReaderT的环境.
我不太enter了解类型魔法,以了解如何做到这一点.有任何想法吗?