首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带括号和变量名的OpenAPI参数

带括号和变量名的OpenAPI参数
EN

Stack Overflow用户
提问于 2019-05-23 23:58:41
回答 1查看 609关注 0票数 1

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

代码语言:javascript
复制
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

基本上,您可以通过将字段名放在括号中来搜索一个或多个字段值。问题是,字段名称由用户在其设置中定义。字段名称将是一个字符串,否则在全局级别上是未知的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 01:22:49

可以将search参数定义为具有deepObject serialization styleminProperties: 1free-form object,以强制在搜索查询中至少存在一个字段。

请确保使用OpenAPI 3.0 (openapi: 3.0.x)而不是OpenAPI 2.0 (swagger: "2.0");后者不支持查询字符串中的对象。

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56279024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档