mirror of
https://github.com/metosin/reitit.git
synced 2025-12-17 00:11:11 +00:00
fix examples
This commit is contained in:
parent
deeb2b2ba6
commit
a416060354
6 changed files with 27 additions and 23 deletions
|
|
@ -1,6 +1,6 @@
|
|||
(ns example.dspec
|
||||
(:require [reitit.coercion.spec :as spec-coercion]
|
||||
[example.server :as server]))
|
||||
[example.middleware :as middleware]))
|
||||
|
||||
(defn handler [{{{:keys [x y]} :query} :parameters}]
|
||||
{:status 200
|
||||
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
(def app
|
||||
(-> #'handler
|
||||
(server/wrap-coercion
|
||||
(middleware/wrap-coercion
|
||||
{:parameters {:query {:x int?, :y int?}}
|
||||
:coercion spec-coercion/coercion})))
|
||||
|
|
|
|||
18
examples/just-coercion-with-ring/src/example/middleware.clj
Normal file
18
examples/just-coercion-with-ring/src/example/middleware.clj
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(ns example.middleware
|
||||
(:require [muuntaja.middleware]
|
||||
[ring.middleware.params]
|
||||
[reitit.middleware :as middleware]
|
||||
[reitit.ring.coercion :as rrc]))
|
||||
|
||||
;; unlift Middleware Record into vanilla Ring middlewareL
|
||||
;; NOTE: to support format-based body coercion, an options map needs
|
||||
;; to be set with :extract-request-format and extract-response-format
|
||||
(defn wrap-coercion [handler resource]
|
||||
(middleware/chain
|
||||
[rrc/coerce-exceptions-middleware
|
||||
rrc/coerce-request-middleware
|
||||
rrc/coerce-response-middleware]
|
||||
handler
|
||||
resource
|
||||
{:extract-request-format (comp :format :muuntaja/request)
|
||||
:extract-response-format (comp :format :muuntaja/response)}))
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
(ns example.naive
|
||||
(:require [clojure.spec.alpha :as s]
|
||||
[clojure.walk :as walk]
|
||||
[example.server :as server]))
|
||||
[clojure.walk :as walk]))
|
||||
|
||||
(s/def ::x int?)
|
||||
(s/def ::y int?)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
(ns example.schema
|
||||
(:require [reitit.coercion.schema :as schema-coercion]
|
||||
[example.server :as server]))
|
||||
[example.middleware :as middleware]))
|
||||
|
||||
(defn handler [{{{:keys [x y]} :query} :parameters}]
|
||||
{:status 200
|
||||
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
(def app
|
||||
(-> #'handler
|
||||
(server/wrap-coercion
|
||||
(middleware/wrap-coercion
|
||||
{:parameters {:query {:x Long, :y Long}}
|
||||
:coercion schema-coercion/coercion})))
|
||||
|
|
|
|||
|
|
@ -1,23 +1,10 @@
|
|||
(ns example.server
|
||||
(:require [ring.adapter.jetty :as jetty]
|
||||
[muuntaja.middleware]
|
||||
[ring.middleware.params]
|
||||
[reitit.middleware :as middleware]
|
||||
[reitit.ring.coercion :as rrc]))
|
||||
[ring.middleware.params]))
|
||||
|
||||
(defonce ^:private server (atom nil))
|
||||
|
||||
;; unlift Middleware Record into vanilla Ring middleware
|
||||
;; NOTE: to support format-based body coercion, an options map needs
|
||||
;; to be set with :extract-request-format and extract-response-format
|
||||
(defn wrap-coercion [handler resource]
|
||||
(middleware/chain
|
||||
[rrc/coerce-exceptions-middleware
|
||||
rrc/coerce-request-middleware
|
||||
rrc/coerce-response-middleware]
|
||||
handler
|
||||
resource))
|
||||
|
||||
(defn restart [handler]
|
||||
(let [app (-> handler
|
||||
(ring.middleware.params/wrap-params)
|
||||
|
|
@ -25,6 +12,6 @@
|
|||
(swap! server (fn [x]
|
||||
(when x (.stop x))
|
||||
(jetty/run-jetty
|
||||
handler
|
||||
app
|
||||
{:port 3000, :join? false})))
|
||||
(println "server running in port 3000")))
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
(:require [clojure.spec.alpha :as s]
|
||||
[spec-tools.spec :as spec]
|
||||
[reitit.coercion.spec :as spec-coercion]
|
||||
[example.server :as server]))
|
||||
[example.middleware :as middleware]))
|
||||
|
||||
;; wrap into Spec Records to enable runtime conforming
|
||||
(s/def ::x spec/int?)
|
||||
|
|
@ -17,6 +17,6 @@
|
|||
|
||||
(def app
|
||||
(-> #'handler
|
||||
(server/wrap-coercion
|
||||
(middleware/wrap-coercion
|
||||
{:parameters {:query ::request}
|
||||
:coercion spec-coercion/coercion})))
|
||||
|
|
|
|||
Loading…
Reference in a new issue