s/keys + clojure.core/or -> swagger returns or args as required
nikolavojicic opened this issue · comments
Nikola Vojičić commented
Using clojure.core/or
inside :req
of s/keys
, when transformed to openapi
/ swagger
/ json-schema
, shows all its args as required, which is not correct:
(s/def ::foo string?)
(s/def ::bar string?)
(s/def ::baz number?)
(openapi/transform (s/keys :req-un [::foo (or ::bar ::baz)]))
;=>
{:type "object",
:properties
{"foo" {:type "string"},
"bar" {:type "string"},
"baz" {:type "number", :format "double"}},
:required ["foo" "bar" "baz"]}