gpt4 book ai didi

haskell - 如何在方尖碑中正确地进行嵌套路由?

转载 作者:行者123 更新时间:2023-12-03 23:08:06 27 4
gpt4 key购买 nike

我已经searching for examples ,但是大多数示例都执行 RouteSomething -> PathSegment "firstpath" $ unitEncoder mempty而不是单个嵌套路由。

有一些例子使用 Cat.id将整个 URI 作为文本传递,例如 Characher-Sheet :

backendRouteEncoder = mkFullRouteEncoder
(FullRoute_Backend BackendRoute_Missing :/ ())
(\case
BackendRoute_API -> PathSegment "api" $ Cat.id
BackendRoute_Missing -> PathSegment "missing" $ unitEncoder mempty
)

然后在后端解析整个路由:

server sql (BackendRoute_API :=> Identity _) = dir "api" $
route [ ("spelllist/", runReaderT spellListHandler sql)
, ("featlist/", runReaderT featListHandler sql)
]

然而,这感觉很奇怪,因为我原以为所有路由都会在 Common.Route 中定义。与 Obelisk.Route根据 ob init 的骨架和其他在那里专门定义路线的例子。我很感激 LambdaCase 对数据类型编码路由的详尽检查的安全性,而不必在所有可能的后端/前端子路由上添加 BackendRoute_Missing 等效项。

最佳答案

data FrontendRoute :: * -> * where
FrontendRoute_Sub :: FrontendRoute (R SubRoute)
data SubRoute :: * -> * where
SubRoute_Foo :: SubRoute ()

然后替换 unitEncoderpathComponentEncoder $ \case ...
obelisk-oauth再举一个例子。

关于haskell - 如何在方尖碑中正确地进行嵌套路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60977498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com