私はcompojure-apiを使用しています。私のapiルート構造体とリクエストを受け取ったルートレコードを返す関数を探しています(または:そのハンドラを適用せずに、特定のリクエストのルートレコード(または:名前)を取得する
compojure.api.routes/path-forで私が探しているものの逆の種類を見つけることができました。これは:nameを指定すると対応するルートのパスを返します。同じネームスペースには有望に見えるget-routesのような機能もありますが、私が探しているものをまだ見つけていません。言い換えれば
は、この単純な例
(defapi my-api
(context "/" []
(GET "/myroute" request
:name :my-get
(ok))
(POST "/myroute" request
:name :my-post
(ok))))
与えられた私は、この
(foo my-api (mock/request :get "/myroute"))
;; => #Route{:path "/myroute", :method :get, :info {:name :my-get, :public {:x-name :my-get}}}
;; or
;; => :my-get
のように任意のアイデアを作品関数fooを探していますか?あなたはそれがどのように見えるかを確認するためにREPLでそれを評価することができるように
ありがとうTommi!それはほとんどすべての方法を取得します、それは私が自分自身をすることを嫌っている(パスパラメータなどが含まれていると簡単に複雑になる)それにマッチする最終パスです。しかし、それはCompojureがボンネットの下で使用するものなので、Cloutを使うのが効果的だと思います。 – Marxama
私はそれが有用なツールになると思う、あなたはPRをしたいと思いますか? –
絶対に、やります! – Marxama