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。好吧,但是我怎么能对不同的响应使用相同的描述呢?还有其他方法吗?目前无法重用响应描述。请随时在中提交增强请求。