Я искал примеры , однако большинство примеров делают RouteSomething -> PathSegment "firstpath" $ unitEncoder mempty
, а не один вложенный маршрут.
Есть несколько примеров, которые используют Cat.id
для прохождения всего URI как текст, такой как Character-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 на все возможные подчиненные модули backend / frontend.