【发布时间】:2016-06-21 10:15:05
【问题描述】:
使用compojure-api 时,使用默认值声明可选查询参数的正确方法是什么?
我的一个路由元素如下(看完this):
(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 声明的指定类型吗?
提前致谢。
【问题讨论】:
标签: clojure compojure compojure-api