openapi - 在 openapi 中的两个不同路径之间共享 operationId
问题描述
首先,我想为我的英语道歉。这不是我的错,而是西班牙的教育系统:D。
我刚刚开始进行 openapi 的迁移,我需要您的帮助。我喜欢使用引用相同 operationId 的不同路径。我用一个例子来解释它:
paths:
"/my-path/my-resource":
get:
tags:
- my-api
operationId: getMyResource
responses:
...
[omitted]
...
"/another-path/another-resource":
get:
tags:
- my-api
operationId: getMyResource
responses:
...
[omitted]
...
可能吗?
非常感谢您的时间。
解决方案
您的问题已标记为openapi-generator
,但似乎是关于 OpenAPI 规范的一般问题。
每个操作的操作 ID 必须是唯一的。规范的 Operation 对象部分将 operationId定义为:
用于标识操作的唯一字符串。在 API 中描述的所有操作中,id 必须是唯一的。operationId 值区分大小写。工具和库可以使用 operationId 来唯一标识一个操作,因此,建议遵循常见的编程命名约定。
粗体的“区分大小写”直接取自规范,但强调了通过工具传递这些规范的一个很好的点(这就是为什么它们必须是唯一的)。在 openapi-generator 中,我们使用 operationId 在生成的输出中定义方法或函数名称。许多语言不支持重载方法,有些甚至不支持非标准大小写(例如 Go)。我们的工具将根据输出语言转换 operationId,因此在这种情况下比规范更严格。如果您绝对需要重复的方法名称并且您的目标输出支持它,您可以创建自定义生成器并扩展处理操作的逻辑。
推荐阅读
- asp.net-core - Serilog DiagnosticContext 线程安全吗?
- sql - SQL 查询根据其他列中的值设置列上的 CHECK 约束
- java - 在 Ubuntu 中安装 Oracle WebLogic Server 12.2.1.4
- android - android中的ViewPager到ViewPager2
- javascript - 用谷歌标签管理器替换变量中的字符
- symfony - 依赖注入:在控制器中获取参数
- vue.js - vue.js - 通过单击按钮在文本框中添加占位符
- mysql - 如何通过计算两列之间的差异来找到时间段(开始时间和结束时间)?
- angular - 用于 Angular 部署的 Azure 容器 Web 应用
- azure - Azure cosmos db 终身免费帐户的费用