Compojure 与可配置的基本路线

Compojure with configurable base route

我使用 Clojure、Ring 和 Compojure 已经有一段时间了,但我还是个新手。

我需要知道的是如何制作可配置的基本路由,例如:

/:base-route

/:base-route/user

/:base-route/settings

/:base-route 可以是不同的(api,公司,东西......)并且将取决于内部检查。我不能做的是对所有路由创建通用检查以查看 /:base-route 是否具有适当的值。例如/:base-route配置为/api,但是用户尝试/company/user -> 响应必须是 404.

好的,方法是使用正则表达式和上下文:

(defroutes routes
  (context ["/:base-route" :base-route (re-pattern base-route)] [base-route]
             (GET  "/user" [] (str "base: " base-route " user"))
             (GET  "/settings" [] (str "base: " base-route " settings"))))