Swagger UI将数组示例显示为null

时间:2018-01-30 13:07:27

标签: swagger swagger-ui openapi

我使用OpenAPI 3.0.0并希望在Items中传递requestBody数组作为参数。我的API定义如下所示:

post:
  tags:
    - test
  summary: Test dummy
  operationId: requestBodyTests
  requestBody:
    description: test the body
    required: true
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/Items'


components:
  schemas:
  Items:
    type: array
    items:
      $ref: '#/components/schemas/Item'
    examples:
      - id: bla
        text: blubb
    - id: bla
      text: blubb

  Item:
    type: object
    properties:
      id:
        type: string
      name:
        type: string

Swagger UI显示请求正文示例,如下所示: null?

和请求体模式如下:

orderedmap wtf?

为什么它会显示有序图而不是我的普通对象?

有人可以告诉我如何正确制作包含正确项目数组的规范吗?

1 个答案:

答案 0 :(得分:0)

模式内的示例使用example关键字(单数),而不是examples(复数)。

此外,您的YAML缩进错误 - ItemsItem必须在schemas下缩进,示例中的列表项必须具有相同的缩进等。如果您粘贴规范进入http://editor.swagger.io,它会指出语法错误。

这是固定版本:

components:
  schemas:
    Items:
      type: array
      items:
        $ref: '#/components/schemas/Item'
      example:   # <------
        - id: bla
          text: blubb
        - id: bla
          text: blubb

    Item:
      type: object
      properties:
        id:
          type: string
        name:
          type: string