Skip to content

Commit 6512b8a

Browse files
authored
Merge pull request #1136 from metosin/fix-1134
don't generate :definitions nil in swagger
2 parents 711ca00 + c71a821 commit 6512b8a

File tree

3 files changed

+6
-7
lines changed

3 files changed

+6
-7
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Malli is in well matured [alpha](README.md#alpha).
1616

1717
## 0.17.0 (UNRELEASED)
1818

19+
* Don't output `:definitions nil` in swagger. [#1134](https://github.com/metosin/malli/issues/1134)
1920
* **BREAKING**: `:gen/fmap` property requires its schema to create a generator.
2021
* previous behavior defaulted to a `nil`-returning generator, even if the schema doesn't accept `nil`
2122
* use `:gen/return nil` property to restore this behavior

src/malli/swagger.cljc

+2-1
Original file line numberDiff line numberDiff line change
@@ -184,11 +184,12 @@
184184
parameters (:parameters expanded)
185185
responses (:responses expanded)
186186
definitions (apply merge
187+
(:definitions acc)
187188
(concat
188189
(->> responses vals (map (comp :definitions :schema)))
189190
(->> parameters (map (comp :definitions :schema)))))]
190191
(-> acc (dissoc k) (merge expanded)
191-
(update :definitions merge definitions)
192+
(merge (when-not (empty? definitions) [:definitions definitions]))
192193
dissoc-non-root-definitions))
193194
acc))
194195
x x)

test/malli/swagger_test.cljc

+3-6
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,7 @@
333333

334334
(deftest swagger-spec-test
335335
(testing "generates swagger for ::parameters and ::responses w/ basic schema"
336-
(is (= {:definitions nil
337-
:parameters [{:description ""
336+
(is (= {:parameters [{:description ""
338337
:in "body"
339338
:name "body"
340339
:required true
@@ -439,8 +438,7 @@
439438
{:registry registry})}}})))))
440439

441440
(testing "no schema in responses ignored"
442-
(is (= {:definitions nil
443-
:responses {200 {:description "" :schema {:type "string"}}
441+
(is (= {:responses {200 {:description "" :schema {:type "string"}}
444442
500 {:description "fail"}}}
445443
(swagger/swagger-spec {::swagger/responses
446444
{500 {:description "fail"}
@@ -518,8 +516,7 @@
518516
::swagger/responses {200 {:schema #'Success}}}))))
519517
(testing "::parameters :query w/ var schema"
520518
;; NB! all refs get inlined!
521-
(is (= {:definitions nil
522-
:parameters [{:description ""
519+
(is (= {:parameters [{:description ""
523520
:in "query"
524521
:name :a
525522
:required true

0 commit comments

Comments
 (0)