を使用するときに、オプションのクエリ パラメータをデフォルト値で宣言する適切な方法は何compojure-api
ですか?
私のルート要素の1つは次のとおりです(これを読んだ後):
(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 ...))
最初はブール値のパラメーターが他のパラメーター (例: ) として定義されていましたが、生成された Swagger UI はそれらをデフォルトの値をshow-future Boolean
持つコンボボックスとして提示しました。true
現在のフォームでは、UI にはオプションが選択されていないコンボボックスが表示されます。同じことがテナントにも起こります。
副次的な質問: Swagger で生成された UI を使用してリクエストを送信すると、エラーが返されます: "levels": "(not (instance? java.lang.Integer \"2\"))"
. 何故ですか?ライブラリは、文字列値を API によって宣言された指定された型に強制/変換することになっていませんか?
前もって感謝します。