使用时使用默认值声明可选查询参数的正确方法是什么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 UI 将它们显示true
为默认值的组合框。在当前表单中,UI 显示了一个未选择任何选项的组合框。租户也是如此。
一个问题:当我使用 Swagger 生成的 UI 发送请求并返回错误时:"levels": "(not (instance? java.lang.Integer \"2\"))"
. 这是为什么?库不应该将字符串值强制/转换为 API 声明的指定类型吗?
提前致谢。