Каков правильный способ объявить необязательный параметр запроса со значением по умолчанию при использовании compojure-api
?
Один из моих элементов маршрута выглядит следующим образом (после чтения этого):
(GET "/:id/descendants" [id]
:return [d/CategoryTreeElement]
:path-params [id :- Long]
:query-params [context-type :- d/ContextType
levels :- Integer
{tenant :- d/Tenant :DEF_TENANT}
{show-future :- Boolean false}
{show-expired :- Boolean false}
{show-suppressed :- Boolean false}
:summary "Fetch category descendants"
(ok ...))
Сначала булевые параметры, которые определены как другие (например, show-future Boolean
), но сгенерированный пользовательский интерфейс Swagger, представляли их как значение со значением true
по умолчанию. В представленной форме пользовательский интерфейс отображает выпадающий список, который не выбран. То же самое происходит с арендатором.
Один вопрос: когда я использую сгенерированный пользовательский интерфейс Swagger для отправки запроса и ошибки возвращается: "levels": "(not (instance? java.lang.Integer \"2\"))"
. Почему это? Разве библиотека не должна принуждать/преобразовывать значения строк в назначенные типы, объявленные API?
Спасибо заранее.