From 20c54b1d7be4d02d37fc5704012f8e78e4633130 Mon Sep 17 00:00:00 2001 From: Tommi Reiman Date: Wed, 21 Mar 2018 07:58:06 +0200 Subject: [PATCH] Changelog for reitit-swagger --- CHANGELOG.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb830655..6470a608 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,51 @@ ; :path "/coffee/luwa"} ``` +### `reitit-swagger` + +* New module to produce swagger-docs from routing tree, including `Coercion` definitions. Works with both middleware & interceptors. + +```clj +(require '[reitit.ring :as ring]) +(require '[reitit.swagger :as swagger]) +(require '[reitit.ring.coercion :as rrc]) +(require '[reitit.coercion.spec :as spec]) +(require '[reitit.coercion.schema :as schema]) + +(require '[schema.core :refer [Int]]) + +(ring/ring-handler + (ring/router + ["/api" + {:swagger {:id ::math}} + + ["/swagger.json" + {:get {:no-doc true + :swagger {:info {:title "my-api"}} + :handler swagger/swagger-spec-handler}}] + + ["/spec" {:coercion spec/coercion} + ["/plus" + {:get {:summary "plus" + :parameters {:query {:x int?, :y int?}} + :responses {200 {:body {:total int?}}} + :handler (fn [{{{:keys [x y]} :query} :parameters}] + {:status 200, :body {:total (+ x y)}})}}]] + + ["/schema" {:coercion schema/coercion} + ["/plus" + {:get {:summary "plus" + :parameters {:query {:x Int, :y Int}} + :responses {200 {:body {:total Int}}} + :handler (fn [{{{:keys [x y]} :query} :parameters}] + {:status 200, :body {:total (+ x y)}})}}]]] + + {:data {:middleware [rrc/coerce-exceptions-middleware + rrc/coerce-request-middleware + rrc/coerce-response-middleware + swagger/swagger-feature]}})) +``` + ## 0.1.0 (2018-2-19) * First release