J'espère pouvoir expliquer cela de manière logique!Trouver le chemin correspondant dans le service Web de Clojure
J'utilise Libérateur de prototype certains services web que je dois exposer aux clients et ont voie (s) définis comme ceci:
(defroutes fish
(context "/fish"
[]
(ANY "/cod/:id/count"
[id]
(cod-fish id))))
(def handler
(-> fish
wrap-params
path-wrapper))
L'intention de path-wrapper
est de sortie des informations sur la correspondance chemin. Il ressemble actuellement à ceci:
(defn path-wrapper
[handler]
(fn [request]
(println "in" (:request-method request) (:uri request))
(let [response (handler request)]
(println "out")
response)))
Ceci affiche ce que vous attendez:
in :get /fish/cod/123/count
out
Cependant, ce que je voudrais qu'il imprimer est:
in :get /fish/cod/:id/count
out
Ce est le chemin qui correspond plutôt que l'URI correspondant.
Je suis presque certain que la réponse est dans Clout quelque part mais je ne semble pas capable de le trouver! :(
Tous les conseils
Cheers,
Peter
pour répondre à votre deuxième point; oui, cela aurait dû être un appel à 'handler' plutôt que le gestionnaire lui-même - merci. – peter