diff --git a/examples/ring-swagger/README.md b/examples/ring-swagger/README.md index 8b9cc8c9..9b03beb5 100644 --- a/examples/ring-swagger/README.md +++ b/examples/ring-swagger/README.md @@ -1,17 +1,10 @@ # WIP: Ring + Swagger example -TODO: - -* Serve Swagger-ui. - ## Usage ```clj > lein repl - -(require '[example.server :as server]) - -(server/start) +(start) ``` To test the endpoints using [httpie](https://httpie.org/): @@ -23,6 +16,9 @@ http GET :3000/api/spec/plus x==1 y==20 http GET :3000/api/swagger.json ``` +* swagger.json: http://localhost:3000/api/swagger.json +* swagger-ui: http://localhost:3000/api-docs/index.html + ## License Copyright © 2017 Metosin Oy diff --git a/examples/ring-swagger/project.clj b/examples/ring-swagger/project.clj index f3133c0c..a47a801f 100644 --- a/examples/ring-swagger/project.clj +++ b/examples/ring-swagger/project.clj @@ -3,5 +3,6 @@ :dependencies [[org.clojure/clojure "1.9.0"] [ring "1.6.3"] [metosin/muuntaja "0.5.0"] + [org.webjars/swagger-ui "3.13.6"] [metosin/reitit "0.1.1-SNAPSHOT"]] :repl-options {:init-ns example.server}) diff --git a/examples/ring-swagger/src/example/server.clj b/examples/ring-swagger/src/example/server.clj index 6d74362d..0dbef160 100644 --- a/examples/ring-swagger/src/example/server.clj +++ b/examples/ring-swagger/src/example/server.clj @@ -19,7 +19,7 @@ ["/swagger.json" {:get {:no-doc true :swagger {:info {:title "my-api"}} - :handler swagger/swagger-spec-handler}}] + :handler (swagger/create-swagger-handler)}}] ["/spec" {:coercion spec/coercion} ["/plus" @@ -37,9 +37,10 @@ :handler (fn [{{{:keys [x y]} :query} :parameters}] {:status 200, :body {:total (+ x y)}})}}]]] - ;; serve api-docs here ["/api-docs/*" - (constantly {:status 200, :body "api-docs"})]] + {:no-doc true + :handler (ring/create-resource-handler + {:root "META-INF/resources/webjars/swagger-ui/3.13.6"})}]] {:data {:middleware [ring.middleware.params/wrap-params muuntaja.middleware/wrap-format @@ -47,7 +48,9 @@ rrc/coerce-exceptions-middleware rrc/coerce-request-middleware rrc/coerce-response-middleware]}}) - (ring/create-default-handler))) + (ring/routes + (ring/create-resource-handler {:path "/"}) + (ring/create-default-handler)))) (defn start [] (jetty/run-jetty #'app {:port 3000, :join? false})