5

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

JAX-RS 规范支持矩阵参数

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

Swagger 2.0 是否支持矩阵参数?

其他链接到矩阵参数:

4

2 回答 2

2

OpenAPI/Swagger 2.0 不支持矩阵参数,但在 OpenAPI 3.0 中支持。

使用 OpenAPI 3.0,您的示例:

/map/color;lat=50;long=20;scale=32000

可以定义为:

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

Swagger UI/编辑器支持

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

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

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

Swagger UI 中的矩阵参数

Swagger 核心支持

对于那些使用 Java 注释@MatrixParam的人,swagger-core 2.0 支持。@MatrixParam对应于 OpenAPI 3.0 的路径参数style: matrix(如上例所示)。

于 2017-06-22T10:42:29.577 回答
1

Swagger 2.0 规范没有提及有关 JAX-RS 矩阵参数的任何内容。

还查看 swagger-jaxrs 实现,您可以看到在负责扫描 JAX-RS 参数注释的类@MatrixParam中忽略了它。

于 2016-03-14T02:06:46.643 回答