在此示例中,我尝试为“房子”添加一个只读字段。这房子是我想成为只读的另一种模型。
在此示例中,可以将Dogs数组设置为readOnly
,而不会出现错误,但是当我将House的单一定义设置为readOnly
时,在Swagger编辑器中会收到以下警告:< / p>
$ refs不允许同级值
我知道这是因为模型中的所有内容都在这里继承。那么,如何定义写API调用不能在此端点中定义“房屋”,而又允许在其他API端点中创建和更新房屋?
Pets:
properties:
id:
type: string
example: AAAAE12-1123AEF-1122312123
readOnly: true
name:
type: string
example: My Default Name
text:
type: string
example: My Default Text
Dogs:
type: array
readOnly: true
items:
$ref: '#/definitions/Dog'
House:
readOnly: true
$ref: '#/definitions/House'
答案 0 :(得分:4)
您需要allOf
才能将$ref
与其他属性组合在一起:
House:
readOnly: true
allOf:
- $ref: '#/definitions/House'
答案 1 :(得分:0)
我刚刚找到了结果,想与您分享,如下所示,您可以使用 readyonly 属性来隐藏任何字段:
@ApiModelProperty(example = "1", readOnly = true, value = "User status")
public String getUserStatus() { return userStatus; }