首页 > 解决方案 > Servant 中的自定义组合器

问题描述

我有以下问题:我想要 Servant 中的一种新型组合器(让我们将其命名Provide):它的行为类似于QueryParam,但不是在查询字符串中搜索给定参数并将其传递给处理程序函数,而是提供价值本身。例如,假设我们有类似的东西

data Param = First | Second Int

type API = "url" :> Provide Param 'First :> Post '[JSON] SomeResp

server :: Server API
server = handler

handler :: Param -> Handler SomeResp
handler param = ...

因此handler它将始终First作为param参数传递。我知道它可以通过其他方式完成(比如处理程序的柯里化等),但它可以在 API 本身的类型级别实现吗?

标签: haskellservant

解决方案


推荐阅读