当前位置: 首页 > 知识库问答 >
问题:

如何集成来自不同API的openapi规范?

谷永贞
2023-03-14

我想问是否有一种方法可以简单地从不同的API中聚合OpenApi规范?

目前,我们为每个API添加了用户招摇过市的功能,并在其中添加了用于身份验证的自定义逻辑,我们还为不同的可访问性规则添加了规则。

然而,以某种方式聚合所有这些API,并将身份验证、访问逻辑保持在同一位置,会更方便。

例:

我们有两个独立的微服务,有独立的API和独立的地址

API 1localhost:5000

  • 使用Orders API分离项目
  • 在这个网址下可以访问单独的swagger

API 2 url本地主机:5001

  • 带有通知API的单独项目
  • 可在此url下访问单独的swagger

我们想要的最终结果:

某种聚合框架或示例项目,它将能够拉Open API斯瓦格生成的这些项目的规范,并基本上显示为一个在一些新的网址下

url localhost:5002

  • 我们得到聚合的Swagger或其他一些框架,显示来自订单API和通知API的endpoint

基本上,我认为这个问题在使用微服务的人中很常见,他们需要从多个微服务中向客户端提供某种公共应用编程接口规范

共有1个答案

仲孙钊
2023-03-14

如果我正确理解您的问题,建议的方案是:

  • 合并你的医生。xml文件
  • 然后将XML转换为YAML(例如https://codebeautify.org/xml-to-yaml)
  • 然后将YAML转换为Swagger preview(例如https://editor.swagger.io)
 类似资料:
  • 对于来说,肯定有某种方法可以产生这个输出,不是吗?我发现有一些将映射到,所以似乎有一种方法可以让它产生类型,但我没有找到

  • 我一直在研究Spring集成文件支持,在这里我需要将文件从输入目录移动到输出目录。成功地将其移动到输出目录后,应该将其归档,然后从输入目录中删除。我正在使用下面的配置来实现这一点。 请纠正我,如果我的配置可以更好的方式。 Spring集成配置: 我在服务激活器中有代码,如果归档目录不可用,它应该终止应用程序。因此,在运行应用程序时,在第一次移动文件后,我已经删除了归档目录。然后,我将新文件放置在i

  • 我有yaml格式的OpenAPI3.0规范和从它生成代码的应用程序。一切工作都很好,除了生成昂首阔步的UI。我使用spring-fox来生成它,但它似乎从控制器生成了霸气的UI2.0版本,这些控制器是从openapi规范生成的。 我如何直接从3.0规范而不是从3.0openapi规范生成的控制器生成昂首阔步的ui?

  • 我有一个从swagger 2.0更新到openapi 3.0.0的yaml规范。 文件本身大约有 7,000 行,因此手动验证具有挑战性。 我需要找出哪些标记不再与openapi 3.0.0兼容。如何验证我的模式?有没有我可以使用的命令行工具? 我不想将此代码复制/粘贴到在线某个地方,因为我不想公开所有路由。

  • 我正在开发一个Spring Boot应用程序的后端,该应用程序使用OpenAPI和Swagger通过模式为前端应用程序提供接口。yml文件。当对控制器进行更改时,我们使用swagger ui获取api文档JSON,使用在线swagger编辑器将其转换为yaml,并将结果粘贴到模式中。yml文件 现在,我想让它自动化,这样我们就可以调用一个maven任务来自动生成yaml文件,但我找不到任何mave