我们将 python flask_swagger_ui
模块与 flask_restplus
一起使用,以便在 swagger.json
中提供一些静态招摇。
有些参数必须传递给某些端点,但我们希望强制这些为标准值,并且不允许 swagger UI 的用户甚至看到这些参数,尽管我们希望这些不可见的参数仍然被传递当“尝试”被调用时到端点。我已经看到对“隐藏”属性的引用,该属性应该启用此参数隐藏功能,但它似乎不适用于 flask_swagger_ui
。
以下 swagger JSON 规范的“路径”片段说明了我们的问题。我们希望 visible_param
参数显示在 Swagger UI 中,以便用户输入值。但是,我们不希望 hidden_param
参数显示给用户,我们总是希望在调用“Try it”时将其传递给值为“xyz”的端点。但是,当我们尝试这样做时,hidden_param
始终显示给用户。
"paths": {
"/sample/endpoint": {
"post": {
"operationId": "test",
"description": "Test",
"parameters": [
{
"in": "query",
"name": "visible_param",
"description": "Visible parameter",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "hidden_param",
"description": "Hidden parameter",
"hidden": true,
"schema": {
"type": "string",
"default": "xyz"
}
}
]
},
... other stuff goes here ...
}
}
有什么办法可以让 hidden_param
不被用户看到?如果这不能通过 Swagger 规范在语法上处理,是否有办法拦截在调用“Try it”时传递给端点的参数?如果是这样,我们就可以将 hidden_param=xyz
填充到传递给端点的参数中。
或者有其他方法可以实现吗?
提前致谢。
编辑:我将代码示例更改为 openapi 3.0.3
格式。我之前以 swagger 2.0
格式对其进行编码。 “隐藏”属性在 openapi 3.0.3
中仍然不起作用。