我有一个用于创建地址的端点和一个用于更新地址的端点。在 OpenAPI 规范中对此进行描述我想使用一个组件作为地址,这样我就不必两次指定地址。现在的问题是,用于更新的地址对象应该包含属性“id”,但用于创建的地址对象却没有。
所以基本上,我正在寻找一种方法来描述组件部分中的完整地址(包括 id 属性),然后引用创建端点,但不包括那里的“id”属性。
最佳答案
您可以使用 allOf
关键字扩展另一种类型,as documented here
在下面的示例中,creationType
只有一个name
属性,但是updateType
具有creationType
的所有属性> 以及一个 id
属性。
例子:
components:
schemas:
creationType:
type: object
properties:
name:
type: string
updateType:
allOf:
- $ref: '#/components/schemas/creationType'
- type: object
required:
- id
properties:
id:
type: string
关于openapi - 如何从引用模式中排除属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60472631/