当前位置: 首页 > 知识库问答 >
问题:

带括号和变量名的OpenAPI参数

太叔岳
2023-03-14

我正在开发一个API,它允许使用URL进行搜索,比如:

GET https://example.com/api/data?search[field1]=value1
GET https://example.com/api/data?search[field2]=value2
GET https://example.com/api/data?search[field1]=value1&search[field2]=value2

这个答案几乎是我想要做的,我只是找不到一种方法来定义括号内的值为“任何字符串”,而不是已知名称的列表。

共有1个答案

阎淮晨
2023-03-14

search参数可以定义为具有deepobject序列化样式和minproperties:1的自由格式对象,以强制搜索查询中至少存在一个字段。

确保您使用的是OpenAPI3.0(OpenAPI:3.0.x),而不是OpenAPI2.0(Swagger:“2.0”);后者不支持查询字符串中的对象。

openapi: 3.0.2
...

paths:
  /api/data:
    get:
      parameters:
        - in: query
          name: search
          required: true
          schema:
            type: object
            additionalProperties: true  # Default value, may be omitted
            minProperties: 1
            # Optional example to use as a starting value for "try it out" in Swagger UI
            example: >
              {
                "field1": "value1",
                "field2": "value2"
              }
          style: deepObject
          explode: true
      responses:
        200:
          description: OK
 类似资料:
  • 这是唯一的解决办法吗:

  • 问题内容: 我正在使用Spring Boot开发应用程序。在REST控制器中,我更喜欢使用路径变量(注释)。我的代码获取了path变量,但它在网址中包含 {} 括号。请任何人建议我解决这个问题 网址 输出控制器 {约翰} 问题答案: 使用提交请求来代替。 您为路径变量赋予Spring值“ {john}” ,因此Spring通过“ {}”获得它 Web MVC框架 指出 URI模板模式 URI模板可

  • 如何为这些参数编写OpenAPI(Swagger)定义?

  • 问题内容: 我正在浏览Alamofire的源代码,并在此源文件中发现了反引号名称的变量 但是,在使用变量的地方没有反引号。反引号的目的是什么? 问题答案: 根据Swift文档: 要将保留字用作标识符,请在其前后加上反引号。例如,class不是有效的标识符,但是是有效的。反引号不视为标识符的一部分;x和x具有相同的含义。 在您的示例中,是一个快速的保留关键字,这就是为什么需要反引号的原因。

  • 问题内容: 我最近一直在思考定义数组的两种方式之间的区别: 有区别吗? 问题答案: 它们在语义上是相同的。添加该语法只是为了帮助C程序员习惯Java。 更可取,并且不会造成混乱。

  • 本文向大家介绍基于js里调用函数时,函数名带括号和不带括号的区别,包括了基于js里调用函数时,函数名带括号和不带括号的区别的使用技巧和注意事项,需要的朋友参考一下 示例代码: 如以上代码: aaa 是将 hi() 的运行结果赋值给它,即 return 返回的匿名函数,此时有一个闭包,则每次调用 aaa 时都访问的同一个 a,aaa() 第一次运行结果为 1,第二次为2 而 bbb 将是将 hi 这