Low-priority default :responses in Swagger spec

According to meta-merge documentation, ^:displace is a good solution
for default values. This is still inside the meta-merge, as I don't
see where else I could put it. Perhaps a better solution is available.
This commit is contained in:
piotr-yuxuan 2020-05-20 22:44:51 +01:00
parent 3e8eaa48d7
commit 6e332e46f1
No known key found for this signature in database
GPG key ID: 7CE94E0B7FFCB423

View file

@ -82,17 +82,18 @@
:x-id ids})) :x-id ids}))
accept-route (fn [route] accept-route (fn [route]
(-> route second :swagger :id (or ::default) (trie/into-set) (set/intersection ids) seq)) (-> route second :swagger :id (or ::default) (trie/into-set) (set/intersection ids) seq))
base-swagger-spec {:responses ^:displace {:default {:description ""}}}
transform-endpoint (fn [[method {{:keys [coercion no-doc swagger] :as data} :data transform-endpoint (fn [[method {{:keys [coercion no-doc swagger] :as data} :data
middleware :middleware middleware :middleware
interceptors :interceptors}]] interceptors :interceptors}]]
(if (and data (not no-doc)) (if (and data (not no-doc))
[method [method
(meta-merge (meta-merge
base-swagger-spec
(apply meta-merge (keep (comp :swagger :data) middleware)) (apply meta-merge (keep (comp :swagger :data) middleware))
(apply meta-merge (keep (comp :swagger :data) interceptors)) (apply meta-merge (keep (comp :swagger :data) interceptors))
(if coercion (if coercion
(coercion/get-apidocs coercion :swagger data)) (coercion/get-apidocs coercion :swagger data))
(when-not (:responses data) {:responses {:default {:description ""}}})
(select-keys data [:tags :summary :description]) (select-keys data [:tags :summary :description])
(strip-top-level-keys swagger))])) (strip-top-level-keys swagger))]))
transform-path (fn [[p _ c]] transform-path (fn [[p _ c]]