首页 文章

Swagger 2.0中的嵌套查询参数

提问于
浏览
2

我正在使用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 名称空间下添加任意参数 .

1 回答

  • 0

    这并没有't appear supported yet (over 2 years after you asked the question), but there'关于在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 一起使用对照工作服务器 .

    enter image description here

    我不相信有一种指定任意值或选择值的好方法(例如枚举),因此您可能必须为每个嵌套选项添加参数 .

相关问题