swagger中的模式数组

swagger中的模式数组,swagger,swagger-ui,openapi,Swagger,Swagger Ui,Openapi,我对招摇过市有些问题。当我认为我了解它是如何工作的时候,总会有一些事情不起作用 这条线怎么了 responses: '200': allOf: - $ref: '../index.yaml#/components/responses/200Ok' content: application/json: schema: allOf: - $ref: '../index.yaml#/components/s

我对招摇过市有些问题。当我认为我了解它是如何工作的时候,总会有一些事情不起作用

这条线怎么了

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'
“data”属性应该是$ref中给定的模式类型的数组,但这是结果

"data": [
  null
]
编辑 好的,似乎正确的方法是将$ref直接放在items键下,我的问题是使用保留键“status” 那么,如何在对象模式中使用保留键呢

编辑
在我的客户机模式中,我放置了两次属性状态,我没有看到它已经存在,所以当我更改属性名称时,它起了作用,我想可能“status”是一个保留关键字。

您就快到了。有两个问题:

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

2) 您不需要
项下的
模式

此外,虽然将
allOf
与其他关键字放在一起非常好,但如果所有组合的模式都列在
allOf
中,一些工具可能会更喜欢它

请尝试以下版本:

响应:
'200':
描述:好的
内容:
应用程序/json:
模式:
所有:
-$ref:“../index.yaml#/components/schemas/Pagination”
-特性:
数据:
类型:数组
项目:
$ref:'../index.yaml#/components/schemas/Client'

您所说的“保留密钥<代码>状态
”是什么意思?您的示例中没有“status”,我的问题是在模式中声明了两次属性。对于$ref,我已经找到了它,但是感谢您的支持,我对您的答案进行了升级,因为它对其他人很有用。另外,响应代码下的allOf工作正常,我使用它来避免每次重复响应的描述。同样,在响应代码语法无效的情况下,同一级别的allOf属性对我来说也很好
allOf
,不要依赖于此。它不应该起作用。如果它真的有效,那就是你正在使用的工具中的一个bug。好吧,但是我怎么能对不同的响应使用相同的描述呢?还有其他方法吗?目前无法重用响应描述。请随时在中提交增强请求。