摇摇欲坠的模式数组

时间:2018-11-02 21:27:25

标签: swagger swagger-ui openapi

我有些招摇不定。当我认为我了解它的工作原理时,总会有不起作用的事情

那行有什么问题

responses:
  '200':
    allOf:
    - $ref: '../index.yaml#/components/responses/200Ok'
    content:
      application/json:
        schema:
          allOf:
          - $ref: '../index.yaml#/components/schemas/Pagination'
          properties:
            data:
              type: array
              items:
                schema:
                  $ref: '../index.yaml#/components/schemas/Client'

“数据”属性应该是$ ref中给出的架构类型的数组,但这是结果

"data": [
  null
]

编辑

好吧,看来正确的方法是将$ ref直接放在items键下,我的问题是使用保留键“ status” 那么,如何在对象模式中使用保留键?

编辑

在我的客户模式中,我两次输入了属性状态,但没有看到它已经存在,因此,当我更改属性名称时,它起作用了,并且我认为“状态”可能是保留关键字。 / p>

1 个答案:

答案 0 :(得分:1)

您快到了。有两个问题:

1)您不能直接在响应代码下放置allOf。不过,您可以$ref整个响应定义。

2)您不需要schema下的items

虽然将allOf与其他关键字一起使用非常好,但是如果将所有组合的模式都列在内部 allOf中,则某些工具可能会更喜欢。

尝试此版本:

responses:
  '200':
    description: OK
    content:
      application/json:
        schema:
          allOf:
          - $ref: '../index.yaml#/components/schemas/Pagination'
          - properties:
              data:
                type: array
                items:
                  $ref: '../index.yaml#/components/schemas/Client'