如何使用略有不同的 $ref 使用相同的组件模式?

Posted

技术标签:

【中文标题】如何使用略有不同的 $ref 使用相同的组件模式?【英文标题】:how to use same component schemas using $ref which vary a little? 【发布时间】:2019-12-28 19:00:50 【问题描述】:

我正在尝试重新使用组件架构作为参考,这些架构因使用情况而异。

我有一个“员工模型”,其中包含以下项目:- EmployeeID 和 EmployeeName

所以我在 YAML 中创建了一个组件架构,如下所示:-

components:
    schemas:
        Employee:
            type: object
            properties:
                EmployeeID:
                    type: integer
                EmployeeName:
                    type: string
                EmployeeAge:
                    type: integer

现在我想在多个路径中使用它,例如

    在请求和响应正文中都使用它,但需要注意的是 在请求中我应该只接受 ID 并且响应可以保留 全部。 在响应正文中使用它,但只能与姓名和年龄一起使用 在只有名称的请求正文中使用它

您能否推荐使用 $ref 并实现上述目标的最佳方法?

【问题讨论】:

Combining defintions in Swagger docs的可能重复 【参考方案1】:

查看combining schemas 上的 JSON Schema 文档;例如,在这种特殊情况下,您将使用allOf

Here's 相关答案。

【讨论】:

以上是关于如何使用略有不同的 $ref 使用相同的组件模式?的主要内容,如果未能解决你的问题,请参考以下文章

1分钟看完 jQuery UI

从相同的代码生成略有不同的 APK

如何正确封装对具有(几乎)相同架构的不同数据库系统的访问?

使用 tar gzip 或 zip 压缩的文件大小略有相同

React Router 避免卸载

Vue 父组件循环使用refs调用子组件方法出现undefined的问题