首页 > 解决方案 > 如何使用略有不同的 $ref 使用相同的组件模式?

问题描述

我正在尝试重新使用组件模式作为参考,这些参考根据它们的使用情况而有所不同。

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

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

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

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

  1. 在请求和响应正文中都使用它,但需要注意的是,在请求中我应该只接受 ID 并且响应可以包含所有内容。
  2. 在响应正文中使用它,但只能使用 Name 和 Age
  3. 在只有名称的请求正文中使用它

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

标签: openapiswagger-editor

解决方案


检查 JSON Schema 文档以结合模式;例如,在这种特殊情况下,您将使用allOf

这是一个相关的答案。


推荐阅读