我在OpenAPI Reference中没有看到任何与此相关的具体内容,所以我想在这里请求确认。
假设我有以下数据的参考:
components:
schemas:
Foobar:
type: object
properties:
timestamp:
type: number
uid:
type: number
username:
type: string
location:
type: string
是否可以引用此组件但仅从内部获取特定属性,例如uid
and username
,并排除其余部分?例如
$ref: '#/components/schemas/Foobar(uid,username)'
我的用例是我有一个库调用,它从数据库中返回记录,根据用户输入根据需要添加(或删除)其他记录。所以我们可以myCall(['username']);
只返回用户名,并myCall(['username', 'location']);
返回用户名和位置。
如果我想在我的 API 中正确记录它的各种用法,我目前必须手动维护输出的所有不同变体。
我希望我可以制作一些我可以引用的“灵活”组件,并让它在 OpenAPI 规范中仍然有效。
我能找到的最接近的是将所有属性包装在anyOf
:
components:
schemas:
Foobar:
anyOf:
- type: object
properties:
timestamp:
type: number
uid:
type: number
username:
type: string
location:
type: string
...但是如果用 ReDoc 之类的东西解析,它只会显示输出将是任何列出的属性,而我实际上需要能够声明“在任何这些属性中,将输出以下内容”。
我猜我的用例有点深奥,但我希望被证明是错误的:)