我正在使用Swagger 2.0记录Rails应用程序,并使用Swagger-UI作为人类可读的文档/沙箱解决方案。
我有一个资源,客户端可以存储任意元数据以便稍后查询。根据Rails约定,查询将如下提交:
/posts?metadata[thing1]=abc&metadata[thing2]=def
哪个Rails转换为:
的参数{ "metadata" => { "thing1" => "abc", "thing2" => "def" } }
可以很容易地用于为数据库生成适当的WHERE
子句。
在Swagger中是否支持此类内容?我想最终让Swagger-UI给出一些修改生成的请求以添加metadata
命名空间下的任意参数的方法。
答案 0 :(得分:0)
此问题似乎尚未得到支持(在您问了问题2年后),但是有关在OpenAPI github repo上对此添加支持的讨论和公开票正在进行中。他们将这种类型的嵌套称为deepObjects
。
还有一个未解决的问题,其中尝试实施here。但是,使用最新的稳定swagger-ui版本,我已经观察到它按预期运行:
"parameters": [
{
"name": "page[number]",
"in": "query",
"type": "integer",
"default": 1,
"required": false
},
{
"name": "page[size]",
"in": "query",
"type": "integer",
"default": 25,
"required": false
}
这将显示预期的对话框,并且可以与Try it out
一起在正常工作的服务器上使用。
我认为没有一种指定任意值或选择值(例如枚举)的好方法,因此您可能必须为每个嵌套选项添加参数。