首页 > Java > java教程 > 使用 Spring API Gateway 和 Micronaut 从 API 网关聚合微服务和 Swagger UI

使用 Spring API Gateway 和 Micronaut 从 API 网关聚合微服务和 Swagger UI

Barbara Streisand
发布: 2025-01-16 18:22:10
原创
956 人浏览过

本指南演示了将 Swagger 3 (OpenAPI) 与 Spring Cloud Gateway 集成以简化微服务 API 文档。 我们将利用 Java 21、Spring Boot 3.2 和 Micronaut 来创建强大且用户友好的解决方案。

为什么选择 Swagger/OpenAPI?

Swagger,现在的 OpenAPI 规范 (OAS),是领先的 API 文档标准。它的好处包括:

  • 行业标准:被广泛采用并得到丰富的工具生态系统的支持。
  • 交互式文档:生成用户友好的文档,允许开发人员直接探索和测试 API。
  • 提高开发人员生产力: SDK 和服务器存根代码生成等功能可加速 API 开发。
  • 增强协作:为开发人员、测试人员和利益相关者提供对 API 功能的共同理解。
  • 简化的测试和调试: Swagger UI 包含一个用于验证 API 响应的测试接口。
  • 跨语言支持:跨不同技术堆栈无缝集成。
  • 轻松集成: 与 Spring Boot 和 Micronaut 等流行框架简单集成。
  • 自动化友好:支持 API 生命周期管理的自动化。
  • 具有企业选项的开源:作为具有企业选项的免费开源工具提供。

Spring Cloud Gateway:基础

Spring Cloud Gateway 基于 Spring Framework 5、Spring Boot 2 和 Project Reactor 构建,充当将请求路由和过滤到微服务的中心入口点。

Spring Cloud Gateway 的功能:

下图说明了 Spring Cloud Gateway 的操作:

Aggregate Microservices

根据定义的路由评估客户端请求。 匹配的请求由网关 Web 处理程序处理,在请求代理之前和之后执行前置和后置过滤器。

构建应用程序:

Aggregate Microservices

先决条件:

  1. Java 21
  2. Gradle(或 Maven)
  3. Spring Boot 3.2 或更高版本
  4. Spring Cloud Gateway 和 Swagger 的理解
  5. 微型机器人

逐步实施:

第 1 步:创建 Micronaut 应用程序(工作、Perk、标签服务)

使用 Micronaut Launcher([链接到启动器])创建三个 Micronaut 应用程序:job-serviceperk-servicetag-service。 选择 Java 或 Kotlin、最新稳定的 Micronaut 版本、Swagger UI 和 OpenAPI 作为功能。 使用 Gradle 或 Maven 作为构建工具。 每个服务都将有一个可访问的 Swagger UI(例如,http://localhost:8081/swagger-ui/index.html 代表 job-service)。 您还可以使用 CLI:

<code class="language-bash">mn create-app --build=gradle_kotlin --jdk=21 --lang=java --test=junit --features=openapi,swagger-ui dev.job.job</code>
登录后复制

(重复 perk-servicetag-service,相应地调整包名称)。

第 2 步:创建 Spring Boot API 网关

使用Spring Initializr([链接到Spring Initializr])生成Spring Boot项目。 包含以下依赖项:Spring Cloud Gateway、Spring Boot Actuator 和 Spring Web。

第 3 步:将 Swagger 集成到 API 网关

将必要的 Springdoc 依赖项添加到 pom.xml (Maven) 或 build.gradle (Gradle):

<code class="language-gradle">dependencies {
    implementation("org.springframework.cloud:spring-cloud-starter-gateway")
    implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.8.3")
    implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.3")
}</code>
登录后复制

配置 application.yml 以启用 Swagger UI 并指定每个微服务的 Swagger YAML 文件的 URL:

<code class="language-yaml">springdoc:
  api-docs:
    enabled: true
  swagger-ui:
    enabled: true
    path: /swagger-ui.html
    config-url: /v3/api-docs/swagger-config
    urls:
      - name: Job Service
        url: http://localhost:8081/swagger/job-service-0.0.yml
      - name: Perk Service
        url: http://localhost:8082/swagger/perk-0.0.yml
      - name: Tag Service
        url: http://localhost:8083/swagger/tag-0.0.yml</code>
登录后复制

application.yml中将API网关端口设置为8080:

<code class="language-yaml">server:
  port: 8080
spring:
  application:
    name: web-api-gateway</code>
登录后复制

第 4 步:运行应用程序

启动四个应用程序(三个 Micronaut 服务和 Spring Boot Gateway)。 网关的 Swagger UI 可通过 http://localhost:8080/webjars/swagger-ui/index.html 访问。

Aggregate Microservices

结论:

这种组合方法提供了强大且文档齐全的微服务架构。 Spring Cloud Gateway 有效地路由请求,而 Swagger 则提供集中式交互式 API 文档体验。 此设置显着提高了开发人员的工作效率和协作能力。请记住将占位符 URL 替换为微服务 Swagger YAML 文件的实际 URL。

以上是使用 Spring API Gateway 和 Micronaut 从 API 网关聚合微服务和 Swagger UI的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板