我想问一下,是否有一种方法可以轻松地从不同的API中聚合OpenApi规范?
目前,我们为每个API使用Swagger,并在其中添加了自定义逻辑来进行身份验证,我们还为不同的可访问性规则添加了规则。
然而,以某种方式聚合所有这些API并将身份验证、访问逻辑保持在同一位置会方便得多。
范例:
我们有两个单独的微服务,它们具有单独的API和单独的地址
API 1本地主机:5000
- 具有订单API的单独项目
- 可在此URL下访问单独的swagger
API 2 URL本地主机:5001
- 具有通知API的单独项目
- 可在此URL下访问单独的swagger
我们想要的最终结果是:
某种聚合框架或示例项目,它能够将Swagger生成的Open API规范从这些项目中提取出来,并基本上将其显示为某个新URL下的一个规范
网址本地主机:5002
- 我们得到了聚合的Swagger或其他一些框架,这些框架显示了来自Orders API和Notifications API的端点
基本上,我认为这个问题在使用微服务的人中很常见,这些微服务需要从多个微服务中向客户端提供某种公共API规范。
2条答案
按热度按时间deyfvvtc1#
如果我没理解错您的问题,建议的场景是:
jgovgodb2#
我想问一下,是否有一种方法可以轻松地从不同的API中聚合OpenApi规范?
您可以使用APIMatic的API规范合并功能,首先合并规范,然后将合并后的输出转换为OpenAPI的格式。
1.按如下方式构建目录:
1.一个极简的
APIMATIC-META.json
可以像这样来实现合并:1.压缩目录,上传并通过他们的网站转换到OpenAPI v3,以获得合并/聚合的OpenAPI输出。这里有一个链接,提供了上传和执行转换的分步指南:https://docs.apimatic.io/manage-apis/api-merging/#transforming-the-zipped-file
如果您希望实现流程自动化,APIMatic也有一个API:https://www.apimatic.io/docs/api#/http/api-endpoints/transformation/transform-via-file
您还可以在此处查看有关为合并的API规范生成统一门户/文档的详细信息:https://docs.apimatic.io/manage-apis/api-merging/。这一节讨论了覆盖服务器URL等信息的能力。