我有一个带有 rest api 的简单服务应用程序:
type API = "items" :> Get '[JSON] [MyData]
app :: Application
app = serve api server
api :: Proxy API
api = Proxy
server :: Server API
server = getItems
getItems :: ExceptT ServantErr IO [MyData]
getItems = ......
startApp :: IO ()
startApp = run 1234 app
如何根据条件访问 http header 并返回特定响应,例如 http403?
最佳答案
使用 Servant 的 Header
( Servant Docs )
type API = "items"
:> Header "Auth-token" Text
:> Get '[JSON] [MyData]
然后
handler :: Maybe Text -> ExceptT ServantErr IO [MyData]
handler (Just "secret-code") = right [mydata]
handler _ = left $ err403 { errBody = "no access" }
关于rest - 如何访问 Servant 中的 http header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36307378/