You need to specify your swagger.json and swagger-ui endpoints at the config file
:xiana/swagger {:uri-path "/swagger/swagger.json"
:path :swagger.json
:data {:coercion (reitit.coercion.malli/create
{:error-keys #{:coercion :in :schema :value :errors :humanized}
:compile malli.util/closed-schema
:strip-extra-keys true
:default-values true
:options nil})
:middleware [reitit.swagger/swagger-feature]
;;; This is toplevel info for your project swagger-ui page
:info {:title "Your Project Title goes HERE"
:description "Some description"
:version "0.1"}}}
:xiana/swagger-ui {:uri-path "/swagger/swagger-ui"}
To add the /swagger/swagger.json
and /swagger/swagger-ui
endpoints you need
to add xiana.swagger/add-swagger-endpoints to your system configuration before
the routes/reset
(defn ->system
[app-cfg]
(-> (config/config app-cfg)
...
xsw/add-swagger-endpoints
routes/reset
...
ws/start))
If you want a description for your endpoint on the swagger-ui page, include it in your route in the map associated with the swagger key as below:
["/users" {:get {:description "This is the description that will appear on swagger-ui under this endpoint"
:action #'users/get-all-users}}]
At the moment xiana.swagger will not generate all the data for the endpoints automaticaly. You need to specify whether the endpoint needs :body :path or :query parameters and you need to specify those parameters. The good news is that if you already have a malli schema for your endpoint, you can reuse that.
At the moment xiana.swagger will ONLY work with malli schemas!
["/users" {:post {:action #'users/add-users
:schema UsersAddReqPayload
:parameters {:body UsersAddReqPayload}
:description "This is the description that will appear on swagger-ui under this endpoint"}}]
If you don't already use a schema you can specify it inline like this:
["/users" {:post {:action #'users/add-users
:parameters {:body [:map {:closed true}
[:name string?]
[:age int?]]}
:description "This is the description that will appear on swagger-ui under this endpoint"}}]
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close