如何在OpenAPI(Swagger)中使用方括号定义参数? [英] How to define parameters with square brackets in OpenAPI (Swagger)?

查看:153
本文介绍了如何在OpenAPI(Swagger)中使用方括号定义参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有使用方括号的查询参数的端点:

I have an endpoint with query parameters that use square brackets:

GET /info?sort[name]=1&sort[age]=-1

在这里,nameage是我的模型定义中的字段名称.

Here, name and age are the field names from my model definition.

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

How can I write an OpenAPI (Swagger) definition for these parameters?

推荐答案

这取决于您使用的OpenAPI(Swagger)版本.

It depends on which version of OpenAPI (Swagger) you use.

可以将sort参数定义为具有nameage属性的对象.参数序列化方法应为style: deepObjectexplode: true.

The sort parameter can be defined an an object with the name and age properties. The parameter serialization method should be style: deepObject and explode: true.

openapi: 3.0.0
...

paths:
  /info:
    get:
      parameters:
        - in: query
          name: sort
          schema:
            type: object
            properties:
              name:
                type: integer
                example: 1
              age:
                type: integer
                example: -1
          style: deepObject
          explode: true
      responses:
        '200':
          description: OK

Swagger UI 3.15.0+和Swagger-Editor 3.5.6+支持此功能.

This is supported in Swagger UI 3.15.0+ and Swagger-Editor 3.5.6+.

sort[name]sort[age]需要定义为单独的参数:

sort[name] and sort[age] need to be defined as individual parameters:

swagger: '2.0'
...
paths:
  /info:
    get:
      parameters:
        - in: query
          name: sort[name]
          type: integer
        - in: query
          name: sort[age]
          type: integer
      responses:
        200:
          description: OK

这篇关于如何在OpenAPI(Swagger)中使用方括号定义参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆