Swagger 2.0是否支持矩阵参数?

时间:2016-03-11 07:30:16

标签: swagger swagger-2.0 swagger-editor

Swagger 2.0是否支持JAX-RS规范的矩阵参数?

JAX-RS specificationMatrix-Parameter支持。

我的应用程序中存在一些矩阵参数,例如/map/color;lat=50;long=20;scale=32000。 我想为矩阵参数派生Swagger。我用http://editor.swagger.io;但我在编辑器中得不到任何帮助。任何人都可以帮助我吗?

Swagger 2.0是否支持矩阵参数?

支持矩阵参数的其他链接:

2 个答案:

答案 0 :(得分:1)

Swagger 2.0 spec未提及有关JAX-RS Matrix参数的任何内容。

同时查看swagger-jaxrs实现,您可以看到the class@MatrixParam被忽略,负责扫描JAX-RS参数注释。

答案 1 :(得分:0)

OpenAPI / Swagger 2.0不支持矩阵参数,但OpenAPI 3.0支持它们。

使用OpenAPI 3.0,您的示例:

openapi: 3.0.1
...
paths:
  /map/color{params}:
    get:
      parameters:
        - in: path
          name: params
          required: true

          # Named matrix parameters are defined as object properties
          schema:
            type: object
            properties:
              lat:
                type: integer
                example: 50
              long:
                type: integer
                example: 20
              scale:
                type: integer
                example: 32000

          # Serialize this object as ;prop1=value2;prop2=value2 etc
          style: matrix
          explode: true

可以定义为:

{
  "lat": 50,
  "long": 20,
  "scale": 32000
}

Swagger UI /编辑器支持

Swagger UI 3.15.0+和Swagger Editor 3.5.6+支持此功能。在参数编辑器中,以JSON对象格式输入参数名称和值,例如:

@MatrixParam

“试一试”会将这些参数作为矩阵参数发送到URL:

Matrix parameters in Swagger UI

Swagger-Core支持

对于那些使用Java注释的人,swagger-core 2.0支持@MatrixParamstyle: matrix对应于带有platform :osx, '10.7' pod 'JSONKit', '~> 1.4' link_with 'Pomo', 'Pomo Dev', 'Pomo Tests' 的OpenAPI 3.0路径参数(如上例所示)。