diff --git a/README.md b/README.md index 0310c9b0..23b019a5 100644 --- a/README.md +++ b/README.md @@ -64,21 +64,22 @@ A Ring routing app with input & output coercion using [data-specs](https://githu ```clj (require '[reitit.ring :as ring]) (require '[reitit.coercion.spec]) -(require '[reitit.ring.coercion-middleware :as mw]) +(require '[reitit.ring.coercion :as rrc]) (def app (ring/ring-handler (ring/router ["/api" - ["/math" {:get {:coercion reitit.coercion.spec/coercion - :parameters {:query {:x int?, :y int?}} + ["/math" {:get {:parameters {:query {:x int?, :y int?}} :responses {200 {:schema {:total pos-int?}}} :handler (fn [{{{:keys [x y]} :query} :parameters}] {:status 200 :body {:total (+ x y)}})}}]] - {:data {:middleware [mw/coerce-exceptions-middleware - mw/coerce-request-middleware - mw/coerce-response-middleware]}}))) + ;; router data effecting all routes + {:data {:coercion reitit.coercion.spec/coercion + :middleware [rrc/coerce-exceptions-middleware + rrc/coerce-request-middleware + rrc/coerce-response-middleware]}}))) ``` Valid request: diff --git a/doc/ring/coercion.md b/doc/ring/coercion.md index 436908b5..b1d37dc7 100644 --- a/doc/ring/coercion.md +++ b/doc/ring/coercion.md @@ -46,7 +46,7 @@ The coerced parameters can be read under `:parameters` key in the request. ## Coercion Middleware -Defining a coercion for a route data doesn't do anything, as it's just data. We have to attach some code to apply the actual coercion. We can use the middleware from `reitit.ring.coercion-middleware`: +Defining a coercion for a route data doesn't do anything, as it's just data. We have to attach some code to apply the actual coercion. We can use the middleware from `reitit.ring.coercion`: * `coerce-request-middleware` for the parameter coercion * `coerce-response-middleware` for the response coercion @@ -57,7 +57,7 @@ Defining a coercion for a route data doesn't do anything, as it's just data. We Here's an full example for applying coercion with Reitit, Ring and Schema: ```clj -(require '[reitit.ring.coercion-middleware :as mw]) +(require '[reitit.ring.coercion :as rrc]) (require '[reitit.coercion.schema]) (require '[reitit.ring :as ring]) (require '[schema.core :as s]) @@ -84,9 +84,9 @@ Here's an full example for applying coercion with Reitit, Ring and Schema: (-> parameters :path :z))] {:status 200 :body {:total total}}))}}]] - {:data {:middleware [mw/coerce-exceptions-middleware - mw/coerce-request-middleware - mw/coerce-response-middleware]}}))) + {:data {:middleware [rrc/coerce-exceptions-middleware + rrc/coerce-request-middleware + rrc/coerce-response-middleware]}}))) ``` Valid request: diff --git a/examples/just-coercion-with-ring/src/example/server.clj b/examples/just-coercion-with-ring/src/example/server.clj index e69bc828..6066b84c 100644 --- a/examples/just-coercion-with-ring/src/example/server.clj +++ b/examples/just-coercion-with-ring/src/example/server.clj @@ -1,7 +1,7 @@ (ns example.server (:require [ring.adapter.jetty :as jetty] [reitit.middleware :as middleware] - [reitit.ring.coercion-middleware :as coercion-middleware])) + [reitit.ring.coercion :as rrc])) (defonce ^:private server (atom nil)) @@ -10,9 +10,9 @@ ;; to be set with :extract-request-format and extract-response-format (defn wrap-coercion [handler resource] (middleware/chain - [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware - coercion-middleware/coerce-exceptions-middleware] + [rrc/coerce-request-middleware + rrc/coerce-response-middleware + rrc/coerce-exceptions-middleware] handler resource)) diff --git a/examples/ring-example/src/example/server.clj b/examples/ring-example/src/example/server.clj index 68e6d19d..86fa8bf9 100644 --- a/examples/ring-example/src/example/server.clj +++ b/examples/ring-example/src/example/server.clj @@ -3,7 +3,7 @@ [ring.middleware.params] [muuntaja.middleware] [reitit.ring :as ring] - [reitit.ring.coercion-middleware :as coercion-middleware] + [reitit.ring.coercion :as rrc] [example.dspec] [example.schema] [example.spec])) @@ -18,9 +18,9 @@ example.spec/routes] {:data {:middleware [ring.middleware.params/wrap-params muuntaja.middleware/wrap-format - coercion-middleware/coerce-exceptions-middleware - coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware]}}))) + rrc/coerce-exceptions-middleware + rrc/coerce-request-middleware + rrc/coerce-response-middleware]}}))) (defn restart [] (swap! server (fn [x] diff --git a/modules/reitit-ring/src/reitit/ring/coercion_middleware.cljc b/modules/reitit-ring/src/reitit/ring/coercion.cljc similarity index 98% rename from modules/reitit-ring/src/reitit/ring/coercion_middleware.cljc rename to modules/reitit-ring/src/reitit/ring/coercion.cljc index 22eaefdc..e01a7f50 100644 --- a/modules/reitit-ring/src/reitit/ring/coercion_middleware.cljc +++ b/modules/reitit-ring/src/reitit/ring/coercion.cljc @@ -1,4 +1,4 @@ -(ns reitit.ring.coercion-middleware +(ns reitit.ring.coercion (:require [reitit.coercion :as coercion] [reitit.impl :as impl])) diff --git a/perf-test/clj/reitit/coercion_perf_test.clj b/perf-test/clj/reitit/coercion_perf_test.clj index 32776195..71e97a4f 100644 --- a/perf-test/clj/reitit/coercion_perf_test.clj +++ b/perf-test/clj/reitit/coercion_perf_test.clj @@ -8,7 +8,7 @@ [muuntaja.core :as m] [muuntaja.format.jsonista :as jsonista-format] [jsonista.core :as j] - [reitit.ring.coercion-middleware :as coercion-middleware] + [reitit.ring.coercion :as rrc] [reitit.coercion.spec :as spec] [reitit.coercion.schema :as schema] [reitit.coercion :as coercion] @@ -36,14 +36,14 @@ (s/def ::k (s/keys :req-un [::x ::y])) (let [spec (spec/into-spec {:x int?, :y int?} ::jeah) - coercers (#'coercion-middleware/request-coercers spec/coercion {:body spec}) + coercers (#'rrc/request-coercers spec/coercion {:body spec}) params {:x "1", :y "2"} request {:body-params {:x "1", :y "2"}}] ;; 4600ns (bench! "coerce-parameters" - (#'coercion-middleware/coerce-request-middleware coercers request)) + (#'rrc/coerce-request-middleware coercers request)) ;; 2700ns (bench! @@ -102,24 +102,24 @@ app (ring/ring-handler (ring/router routes - {:data {:middleware [coercion-middleware/coerce-request-middleware] + {:data {:middleware [rrc/coerce-request-middleware] :coercion coercion}})) app2 (ring/ring-handler (ring/router routes - {:data {:middleware [coercion-middleware/coerce-request-middleware] + {:data {:middleware [rrc/coerce-request-middleware] :coercion coercion}})) app3 (ring/ring-handler (ring/router routes - {:data {:middleware [coercion-middleware/coerce-request-middleware - coercion-middleware/wrap-coerce-response] + {:data {:middleware [rrc/coerce-request-middleware + rrc/wrap-coerce-response] :coercion coercion}})) app4 (ring/ring-handler (ring/router routes - {:data {:middleware [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware] + {:data {:middleware [rrc/coerce-request-middleware + rrc/coerce-response-middleware] :coercion coercion}})) req {:request-method :get :uri "/api/ping" @@ -156,8 +156,8 @@ :get {:handler (fn [{{{:keys [x y]} :body} :parameters}] {:status 200 :body {:total (+ x y)}})}}]] - {:data {:middleware [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware] + {:data {:middleware [rrc/coerce-request-middleware + rrc/coerce-response-middleware] :coercion spec/coercion}}))) (app @@ -205,8 +205,8 @@ (let [body (-> request :parameters :body)] {:status 200, :body {:result (+ (:x body) (:y body))}}))}}] {:data {:middleware [[mm/wrap-format m] - coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware] + rrc/coerce-request-middleware + rrc/coerce-response-middleware] :coercion schema/coercion}})) request {:request-method :post :uri "/plus" @@ -229,8 +229,8 @@ :handler (fn [request] (let [body (-> request :parameters :body)] {:status 200, :body {:result (+ (:x body) (:y body))}}))}}] - {:data {:middleware [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware] + {:data {:middleware [rrc/coerce-request-middleware + rrc/coerce-response-middleware] :coercion schema/coercion}})) request {:request-method :post :uri "/plus" @@ -253,8 +253,8 @@ :handler (fn [request] (let [body (-> request :parameters :body)] {:status 200, :body {:result (+ (:x body) (:y body))}}))}}] - {:data {:middleware [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware] + {:data {:middleware [rrc/coerce-request-middleware + rrc/coerce-response-middleware] :coercion spec/coercion}})) request {:request-method :post :uri "/plus" @@ -282,8 +282,8 @@ :handler (fn [request] (let [body (-> request :parameters :body)] {:status 200, :body {:result (+ (:x body) (:y body))}}))}}] - {:data {:middleware [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware] + {:data {:middleware [rrc/coerce-request-middleware + rrc/coerce-response-middleware] :coercion spec/coercion}})) request {:request-method :post :uri "/plus" diff --git a/test/cljc/reitit/ring_coercion_test.cljc b/test/cljc/reitit/ring_coercion_test.cljc index eef9372d..1909f786 100644 --- a/test/cljc/reitit/ring_coercion_test.cljc +++ b/test/cljc/reitit/ring_coercion_test.cljc @@ -2,7 +2,7 @@ (:require [clojure.test :refer [deftest testing is]] [schema.core :as s] [reitit.ring :as ring] - [reitit.ring.coercion-middleware :as coercion-middleware] + [reitit.ring.coercion :as rrc] [reitit.coercion.spec :as spec] [reitit.coercion.schema :as schema]) #?(:clj @@ -53,8 +53,8 @@ :coercion spec/coercion}})))] (testing "withut exception handling" - (let [app (create [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware])] + (let [app (create [rrc/coerce-request-middleware + rrc/coerce-response-middleware])] (testing "all good" (is (= {:status 200 @@ -74,9 +74,9 @@ (app invalid-request2)))))) (testing "with exception handling" - (let [app (create [coercion-middleware/coerce-exceptions-middleware - coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware])] + (let [app (create [rrc/coerce-exceptions-middleware + rrc/coerce-request-middleware + rrc/coerce-response-middleware])] (testing "all good" (is (= {:status 200 @@ -108,8 +108,8 @@ :coercion schema/coercion}})))] (testing "withut exception handling" - (let [app (create [coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware])] + (let [app (create [rrc/coerce-request-middleware + rrc/coerce-response-middleware])] (testing "all good" (is (= {:status 200 @@ -129,9 +129,9 @@ (app invalid-request2)))) (testing "with exception handling" - (let [app (create [coercion-middleware/coerce-exceptions-middleware - coercion-middleware/coerce-request-middleware - coercion-middleware/coerce-response-middleware])] + (let [app (create [rrc/coerce-exceptions-middleware + rrc/coerce-request-middleware + rrc/coerce-response-middleware])] (testing "all good" (is (= {:status 200