metosin/reitit

Add support for JSON Schema Coercion

Open

#273 opened on May 15, 2019

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Clojure (1,569 stars) (261 forks)batch import
enhancementhelp wanted

Description

... would allow easy swagger -> reitit conversion.

Something like:

(require '[reitit.coercion.json-schema])

["/api"
 {:coercion reitit.coercion.json-schema/coercion}

 ["/order"
  {:post
   {:parameters
    {:body
     {:title "Order"
      :properties {:petId {:format "int64"
                           :type "integer"},
                   :status {:description "Order Status"
                            :enum ["placed" "approved" "delivered"]
                            :type "string"},
                   :id {:format "int64"
                        :type "integer"},
                   :shipDate {:format "date-time"
                              :type "string"},
                   :complete {:default false
                              :type "boolean"},
                   :quantity {:format "int32"
                              :type "integer"}},
      :type "object",
      :xml {:name "Order"}}}
    :handler (fn [req]
               {:status 200
                :body {:id (-> req :parameters :body :petId)}})}}]]

Contributor guide