Fork me on GitHub
#reitit
<
2018-12-23
>
mike70657420:12:40

hi - anyone know how i can specify an optional query parameter? i'm using spec coercion

mike70657420:12:50

here's my route definition:

mike70657420:12:56

["/animals"
    {:get
     {:summary "retrieving animals"
      :parameters {:query {:name string?}}
      :responses {200 {:schema ::animals-response}}
      :handler (fn [{{name :name} :query-params}]
                 (to-http (if name
                            (animals/animals animal-repo name)
                            (animals/animals animal-repo))))}}]

mike70657420:12:00

i want the :name parameter to be optional here. i've tried a few different options - using s/or, s/nilable, etc, but it still shows up in swagger as required

ikitommi22:12:21

@mike706574 {(ds/opt :name) string?}, given (require '[spec-tools.data-spec :as ds]). Another option is to use s/keys with :opt or :opt-un keys.