在 OpenAPI 描述中使用引用

OpenAPI 引用是一个强大的工具。它允许管理文档的大小和复杂度,并允许重用共享组件,避免复制粘贴或更改管理错误。

但是,引用的历史和 "$ref" 关键字很复杂,导致根据您使用的 OpenAPI 规范 (OAS) 版本以及在 OpenAPI 描述 (OAD) 中引用出现的位置,其行为略有不同。还有其他 "$ref" 类似的关键字("operationRef""mapping")和行为(按组件名称或操作 ID 引用),这些关键字和行为相关但略有不同。由于不同工具之间的支持不完整且不一致,引用也可能难以使用,其中一些工具需要在读取 OAD 之前对引用进行预处理。

本节中的资源解释了如何使用引用以及在评估 OpenAPI 工具中的引用支持时要寻找什么。

引用的未来

计划在未来的 OpenAPI 规范中减少围绕引用的复杂性。

Moonwalk 项目 正在考虑一种不同的方法,该方法导入完整的文档,将它们与命名空间关联,并且只支持按组件名称引用(而不是 "$ref")。在 Moonwalk 部署建议 中可以看到一个小的示例,并且围绕 导入的初步草案建议 以及一些关于 如何管理与 JSON Schema 引用交互 的想法正在进行讨论。

建议的工作流程规范 已经使用了一个 "sourceDescription" 字段,它与 Moonwalk 建议类似。