swagger 使用枚举时无法看到滚动菜单

xmd2e60i  于 2022-12-26  发布在  其他
关注(0)|答案(2)|浏览(135)

我想在openAPI中定义枚举。
我看了这篇文章:
How to define an enum in OpenAPI (Swagger)?
我希望能够看到如下的枚举:

我使用components,并将其定义为:

components:
  
  schemas:
  
    FilterImg:
      type: object
      properties:
          name:
            type: string
            enum: ["img_1", "img_2"]
          value:
            type: string

我正在使用它:

post:
      summary: Add new img
      tags:
        - img
      description: Lets a user post a new img
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilterImg'
      responses:
        '200':
          description: Successfully

但是我看不到enum滚动菜单(在web浏览器中),正如我们在示例中看到的那样。
我错过了什么?

3pmvbmvn

3pmvbmvn1#

你在内容类型中传递application/json,你想要enum dropdown,这怎么可能呢?
您需要从Swagger DocsOpenapi Specification文档中了解更多关于swagger的信息。
无论如何,我得到了一个想法,你需要这个下拉菜单的身体,所以在这里我刚刚添加了application/x-www-form-urlencoded内容类型:

post:
  summary: Add new img
  tags:
    - img
  description: Lets a user post a new img
  requestBody:
    required: true
    content:
      application/x-www-form-urlencoded:
        schema:
          $ref: '#/components/schemas/FilterImg'
  responses:
    '200':
      description: Successfully

剩下的事情都一样。
它看起来像:

wwodge7n

wwodge7n2#

对于JSON/XML请求和响应主体,各个主体字段的枚举值显示在模式文档中,即在Schema选项卡上(对于OpenAPI 2.0,则在Model选项卡上)。

相关问题