SwaggerUI 3 不尊重 OpenAPI 3 规范中查询数组参数的“explode: false”

blu*_*blu 2 swagger-ui openapi

我在 OpenAPI 3 规范中定义了一个查询参数,如下所示:

      parameters:
      - in: query
        name: categories
        schema:
          type: array
          items:
            type: string
            enum:
            - category1
            - category2
          style: form
          explode: false
Run Code Online (Sandbox Code Playgroud)

期望的是,如果我使用“尝试一下!” 功能并选择类别 1 和类别 2,形成的 URL 应包含: ?categories=category1,category2

然而,SwaggerUI 却形成了 URL 的这一部分,如下所示: ?categories=category1&categories=category2

因此,SwaggerUI 似乎将该参数视为explode设置为true

我怎样才能让 SwaggerUI 使用逗号分隔的公式,因为这是服务器所期望的?

blu*_*blu 6

问题是explodestyle属性应该放置在与 相同的级别schema,而不是嵌套在其中。

      parameters:
      - in: query
        name: categories
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
            enum:
            - category1
            - category2
Run Code Online (Sandbox Code Playgroud)