如何在Swagger/OpenAPI中继承Schema并覆写字段描述?
解决OpenAPI Schema继承并覆写字段描述的问题
当然可以,你可以借助OpenAPI的allOf关键字,结合局部属性定义来实现只覆写birth-date字段的description,同时继承UserDetails的所有其他属性,方法和你修改required属性的思路类似但更直接。
具体实现示例
UserDetails-Create: allOf: - $ref: '#/components/schemas/UserDetails' - type: object properties: birth-date: description: 这里填写你需要的新描述文本,替换原UserDetails中的描述
原理说明
allOf会将多个Schema的属性进行合并,当同一个字段在多个子Schema中存在时,后面的定义会覆盖前面的对应属性(仅覆盖你明确指定的部分,比如这里只写了description,那么birth-date的其他属性如type、format等依然沿用UserDetails中的定义)。- 如果需要同时调整
required字段,直接把required数组和allOf放在同一层级即可,就像你之前的示例那样:
UserDetails-Create: required: - name - age - birth-date allOf: - $ref: '#/components/schemas/UserDetails' - type: object properties: birth-date: description: 新的描述内容
内容的提问来源于stack exchange,提问作者avoshmo
相关产品推荐
相关产品推荐

