如何在OpenAPI中将$ref属性声明为只读(Swagger)?

如何在OpenAPI中将$ref属性声明为只读(Swagger)?,swagger,swagger-2.0,openapi,Swagger,Swagger 2.0,Openapi,在本例中,我试图为“House”添加一个只读字段。房子是另一个我想要只读的模型 在这个例子中,狗的数组可以设置为readOnly,没有错误,但是当我将房子的单个定义设置为readOnly时,我在Swagger编辑器中得到以下警告: $refs旁边不允许有同级值 我理解这是因为模型中的所有内容都是在这里继承的。那么,如何定义write API调用不能在该端点中定义“House”,同时也允许在另一个API端点中创建和更新House 宠物: 特性: 身份证件: 类型:字符串 示例:AAE12-1123

在本例中,我试图为“House”添加一个只读字段。房子是另一个我想要只读的模型

在这个例子中,狗的数组可以设置为
readOnly
,没有错误,但是当我将房子的单个定义设置为
readOnly
时,我在Swagger编辑器中得到以下警告:

$refs旁边不允许有同级值

我理解这是因为模型中的所有内容都是在这里继承的。那么,如何定义write API调用不能在该端点中定义“House”,同时也允许在另一个API端点中创建和更新House

宠物:
特性:
身份证件:
类型:字符串
示例:AAE12-1123AEF-1122312123
只读:正确
姓名:
类型:字符串
示例:我的默认名称
正文:
类型:字符串
示例:我的默认文本
狗:
类型:数组
只读:正确
项目:
$ref:“#/definitions/Dog”
众议院:
只读:正确
$ref:“#/definitions/House”
OpenAPI 3.1 在OAS 3.1中,模式定义在
$ref
旁边支持同级关键字:

住宅:
$ref:“#/components/schemas/House”
只读:正确
OpenAPI 3.0和2.0 忽略
$ref
旁边的同级关键字。解决方法是使用
allOf
$ref
与其他属性组合:

住宅:
只读:正确
所有:
-$ref:“#/definitions/House”

Related(几乎重复):使用这种方法不起作用,因为输出中不会出现
readonly
属性。@MajidAkbari这是一个工具问题。使用该工具打开一个问题。