3

我知道这不是有效的语法,但是有没有办法在仆人中完成这样的事情?

type StandardAPI = "foo" :> Get '[JSON] Whatever

type CustomAPI = StandardAPI :<|> "customroute" :> Get '[JSON] Blah

换句话说,组合 API。在 Spock 中,我可以通过 monadic 路线构造来做到这一点,但我不确定如何在仆人中做到这一点。

这样我就可以跨 API 重用共享路由。使用它的另一个原因是某些类型不能与客户端生成器一起使用,例如 Raw。

4

1 回答 1

8

是的,参考您可以使用的仆人文档

type CombinedAPI = "users" :> UsersAPI
          :<|> "products" :> ProductsAPI

server :: Server CombinedAPI
server = usersServer :<|> productsServer

usersServer :: Server UsersAPI
usersServer = -- implementation

productsServer :: Server ProductsAPI
productsServer = -- implementation
于 2016-06-07T13:01:21.353 回答