【问题标题】:Listing all routes in compojure在 compojure 中列出所有路线
【发布时间】:2015-12-14 12:30:01
【问题描述】:

如何列出处理函数上的所有路由?我正在寻找类似于 rails 的rake routes 的行为。例如:

(defroutes foo-routes
    (GET "/foo/:foo-id"
        [foo-id]
            "bar response")
    (GET "/bar/:bar-id"
        [bar-id]
            "foo response"))

是否可以从包含以下内容的 foo-bar-routes 中提取地图?

{:GET "/foo/:foo-id"
 :GET "/bar/:bar-id"}

【问题讨论】:

    标签: clojure compojure


    【解决方案1】:

    我认为这是不可能的。 defroutes 是一个返回环处理程序的宏。 GET 是一个返回路由的宏。 Route 再次只是一个仅在方法和路径匹配时调用相关处理程序的函数。所以最后你的 foo-routes 只是一个 clojure 函数,它由你的路由定义的其他函数组成,它不维护这样的映射。如果你需要得到这样的地图,也许你可以自己在代码中维护它,并从这张地图中生成路线。

    【讨论】:

      猜你喜欢
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 2011-08-14
      • 1970-01-01
      • 2015-11-20
      相关资源
      最近更新 更多