分かりやすく説明できると思います!
Liberator を使用して、クライアントに公開する必要があるいくつかの Web サービスのプロトタイプを作成し、ルートを次のように定義しています。
(defroutes fish
(context "/fish"
[]
(ANY "/cod/:id/count"
[id]
(cod-fish id))))
(def handler
(-> fish
wrap-params
path-wrapper))
の意図はpath-wrapper
、一致したパスに関する情報を出力することです。現在、次のようになっています。
(defn path-wrapper
[handler]
(fn [request]
(println "in" (:request-method request) (:uri request))
(let [response (handler request)]
(println "out")
response)))
これはあなたが期待するものを出力します:
in :get /fish/cod/123/count
out
ただし、印刷したいのは次のとおりです。
in :get /fish/cod/:id/count
out
つまり、一致した URI ではなく、一致したパスです。
答えはCloutのどこかにあるとほぼ確信していますが、見つけられないようです! :(
何かアドバイス?
乾杯、
ピーター