如何为Servant中的所有端点添加前缀?

Ala*_*ano 4 rest haskell servant

我在Haskell servant中有一个hello world应用程序,这是它的一部分:

type API = 
  "my_items" :> Get '[JSON] [MyItem]
  :<|> "my_items" :> Capture "id" Int :> Get '[JSON] MyItem
  -- ...................
Run Code Online (Sandbox Code Playgroud)

并且网址是:

  localhost/my_items
  localhost/my_items/123
Run Code Online (Sandbox Code Playgroud)

如何为现有网址和我将创建的其他网址添加前缀:

  localhost/api/v1/my_items
  localhost/api/v1/my_items/123
  localhost/api/v1/.....
Run Code Online (Sandbox Code Playgroud)

Sib*_*ibi 7

只需创建另一种类型:

type APIv1 = "api" :> "v1" :> API
Run Code Online (Sandbox Code Playgroud)