diff --git a/README.md b/README.md index ba8b7e5b..2551b0c2 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Invalid request: ## More examples -* [`reitit-ring` with coercion, swagger and default middleware](https://github.com/metosin/reitit/blob/master/examples/ring-swagger/src/example/server.clj) +* [`reitit-ring` with coercion, swagger and default middleware](https://github.com/metosin/reitit/blob/master/examples/ring-malli-swagger/src/example/server.clj) * [`reitit-frontend`, the easy way](https://github.com/metosin/reitit/blob/master/examples/frontend/src/frontend/core.cljs) * [`reitit-frontend` with Keechma-style controllers](https://github.com/metosin/reitit/blob/master/examples/frontend-controllers/src/frontend/core.cljs) * [`reitit-http` with Pedestal](https://github.com/metosin/reitit/blob/master/examples/pedestal/src/example/server.clj) diff --git a/doc/ring/default_middleware.md b/doc/ring/default_middleware.md index c2245e67..2d4138ec 100644 --- a/doc/ring/default_middleware.md +++ b/doc/ring/default_middleware.md @@ -59,4 +59,4 @@ Partial sample output: ## Example app -See an example app with the default middleware in action: https://github.com/metosin/reitit/blob/master/examples/ring-swagger/src/example/server.clj. +See an example app with the default middleware in action: . diff --git a/doc/ring/swagger.md b/doc/ring/swagger.md index 0e7a064c..79c0c148 100644 --- a/doc/ring/swagger.md +++ b/doc/ring/swagger.md @@ -145,7 +145,7 @@ Another way to serve the swagger-ui is using the [default handler](default_handl * missed routes are handled by `create-default-handler` * served via [ring-jetty](https://github.com/ring-clojure/ring/tree/master/ring-jetty-adapter) -Whole example project is in [`/examples/ring-swagger`](https://github.com/metosin/reitit/tree/master/examples/ring-swagger). +Whole example project is in [`/examples/ring-spec-swagger`](https://github.com/metosin/reitit/tree/master/examples/ring-spec-swagger). ```clj (ns example.server diff --git a/examples/README.md b/examples/README.md index 27134eb3..dbc42b05 100644 --- a/examples/README.md +++ b/examples/README.md @@ -44,7 +44,3 @@ Coercion with Malli and Swagger generation. ## ring-spec-swagger Coercion with Spec and Swagger generation. - -## ring-swagger - -Coercion with Spec and Swagger generation. Same as previous! diff --git a/examples/ring-swagger/.gitignore b/examples/ring-swagger/.gitignore deleted file mode 100644 index c53038ec..00000000 --- a/examples/ring-swagger/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -/target -/classes -/checkouts -pom.xml -pom.xml.asc -*.jar -*.class -/.lein-* -/.nrepl-port -.hgignore -.hg/ diff --git a/examples/ring-swagger/README.md b/examples/ring-swagger/README.md deleted file mode 100644 index 90585d1e..00000000 --- a/examples/ring-swagger/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Ring with Swagger example - -## Usage - -```clj -> lein repl -(start) -``` - -To test the endpoints using [httpie](https://httpie.org/): - -```bash -http GET :3000/math/plus x==1 y==20 -http POST :3000/math/spec/plus x:=1 y:=20 - -http GET :3000/swagger.json -``` - - - -## License - -Copyright © 2017-2018 Metosin Oy diff --git a/examples/ring-swagger/project.clj b/examples/ring-swagger/project.clj deleted file mode 100644 index 770f0584..00000000 --- a/examples/ring-swagger/project.clj +++ /dev/null @@ -1,6 +0,0 @@ -(defproject ring-example "0.1.0-SNAPSHOT" - :description "Reitit Ring App with Swagger" - :dependencies [[org.clojure/clojure "1.10.0"] - [ring/ring-jetty-adapter "1.7.1"] - [metosin/reitit "0.7.0-alpha1"]] - :repl-options {:init-ns example.server}) diff --git a/examples/ring-swagger/resources/reitit.png b/examples/ring-swagger/resources/reitit.png deleted file mode 100644 index c89c3654..00000000 Binary files a/examples/ring-swagger/resources/reitit.png and /dev/null differ diff --git a/examples/ring-swagger/src/example/server.clj b/examples/ring-swagger/src/example/server.clj deleted file mode 100644 index 58d01810..00000000 --- a/examples/ring-swagger/src/example/server.clj +++ /dev/null @@ -1,105 +0,0 @@ -(ns example.server - (:require [reitit.ring :as ring] - [reitit.coercion.spec] - [reitit.swagger :as swagger] - [reitit.swagger-ui :as swagger-ui] - [reitit.ring.coercion :as coercion] - [reitit.dev.pretty :as pretty] - [reitit.ring.middleware.muuntaja :as muuntaja] - [reitit.ring.middleware.exception :as exception] - [reitit.ring.middleware.multipart :as multipart] - [reitit.ring.middleware.parameters :as parameters] - ;; Uncomment to use - ; [reitit.ring.middleware.dev :as dev] - [ring.adapter.jetty :as jetty] - [muuntaja.core :as m] - [clojure.java.io :as io])) - -(def app - (ring/ring-handler - (ring/router - [["/swagger.json" - {:get {:no-doc true - :swagger {:info {:title "my-api" - :description "with reitit-ring"}} - :handler (swagger/create-swagger-handler)}}] - - ["/files" - {:swagger {:tags ["files"]}} - - ["/upload" - {:post {:summary "upload a file" - :parameters {:multipart {:file multipart/temp-file-part}} - :responses {200 {:body {:name string?, :size int?}}} - :handler (fn [{{{:keys [file]} :multipart} :parameters}] - {:status 200 - :body {:name (:filename file) - :size (:size file)}})}}] - - ["/download" - {:get {:summary "downloads a file" - :swagger {:produces ["image/png"]} - :handler (fn [_] - {:status 200 - :headers {"Content-Type" "image/png"} - :body (-> "reitit.png" - (io/resource) - (io/input-stream))})}}]] - - ["/math" - {:swagger {:tags ["math"]}} - - ["/plus" - {:get {:summary "plus with spec query parameters" - :parameters {:query {:x int? - :y int?}} - :responses {200 {:body {:total int?}}} - :handler (fn [{{{:keys [x y]} :query} :parameters}] - {:status 200 - :body {:total (+ x y)}})} - :post {:summary "plus with spec body parameters" - :parameters {:body {:x int? - :y int?}} - :responses {200 {:body {:total int?}}} - :handler (fn [{{{:keys [x y]} :body} :parameters}] - {:status 200 - :body {:total (+ x y)}})}}]]] - - {;;:reitit.middleware/transform dev/print-request-diffs ;; pretty diffs - ;;:validate spec/validate ;; enable spec validation for route data - ;;:reitit.spec/wrap spell/closed ;; strict top-level validation - :exception pretty/exception - :data {:coercion reitit.coercion.spec/coercion - :muuntaja m/instance - :middleware [;; swagger feature - swagger/swagger-feature - ;; query-params & form-params - parameters/parameters-middleware - ;; content-negotiation - muuntaja/format-negotiate-middleware - ;; encoding response body - muuntaja/format-response-middleware - ;; exception handling - (exception/create-exception-middleware - {::exception/default (partial exception/wrap-log-to-console exception/default-handler)}) - ;; decoding request body - muuntaja/format-request-middleware - ;; coercing response bodys - coercion/coerce-response-middleware - ;; coercing request parameters - coercion/coerce-request-middleware - ;; multipart - multipart/multipart-middleware]}}) - (ring/routes - (swagger-ui/create-swagger-ui-handler - {:path "/" - :config {:validatorUrl nil - :operationsSorter "alpha"}}) - (ring/create-default-handler)))) - -(defn start [] - (jetty/run-jetty #'app {:port 3000, :join? false}) - (println "server running in port 3000")) - -(comment - (start)) diff --git a/examples/ring-swagger/swagger.png b/examples/ring-swagger/swagger.png deleted file mode 100644 index 9d5a55b8..00000000 Binary files a/examples/ring-swagger/swagger.png and /dev/null differ