Ich benutze Compojure-API, und ich bin auf der Suche nach einer Funktion, die, angesichts meiner api Route Struktur Thingie und eine Anfrage, die Route Datensatz (oder: Name) für diese Anfrage, ohne seinen Handler anzuwenden.Erhalte Route Datensatz (oder: Name) für eine bestimmte Anfrage
Ich war in der Lage, eine Art der Umkehrung von dem zu finden, was ich in compojure.api.routes/path-for suche, das, gegeben a: Name, den Pfad für die entsprechende Route zurückgibt. Im selben Namespace gibt es auch Funktionen wie get-routes, die vielversprechend erscheinen, aber ich muss noch genau das finden, wonach ich suche.
Mit anderen Worten, dieses einfache Beispiel gegeben
(defapi my-api
(context "/" []
(GET "/myroute" request
:name :my-get
(ok))
(POST "/myroute" request
:name :my-post
(ok))))
Ich bin für eine Funktion foo suchen,
(foo my-api (mock/request :get "/myroute"))
;; => #Route{:path "/myroute", :method :get, :info {:name :my-get, :public {:x-name :my-get}}}
;; or
;; => :my-get
Irgendwelche Ideen, wie das funktioniert?
Danke Tommi! Das bringt fast alles mit, es ist nur der letzte Pfad, den ich selbst nicht gerne machen würde (es wird leicht kompliziert, wenn Pfadparameter usw. enthalten sind). Aber ich denke, dass es funktionieren sollte, um Clout dafür zu verwenden, da das Compojure unter der Haube verwendet. – Marxama
Ich denke, das wäre ein nützliches Werkzeug, würdest du gerne einen PR machen? Wenn das erledigt wäre? –
Absolut, wird es tun! – Marxama