使用 Spring API Gateway 和 Micronaut 從 API 閘道聚合微服務和 Swagger UI
本指南示範了將 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 的操作:
根據定義的路由評估客戶端請求。 符合的請求由網關 Web 處理程序處理,在請求代理之前和之後執行前置和後置過濾器。
建立應用程式:
先決條件:
- Java 21
- Gradle(或 Maven)
- Spring Boot 3.2 或更高版本
- Spring Cloud Gateway 與 Swagger 的理解
- 微型機器人
逐步實作:
第 1 步:建立 Micronaut 應用程式(工作、Perk、標籤服務)
使用 Micronaut Launcher([連結到啟動器])建立三個 Micronaut 應用程式:job-service
、perk-service
和 tag-service
。 選擇 Java 或 Kotlin、最新穩定的 Micronaut 版本、Swagger UI 和 OpenAPI 作為功能。 使用 Gradle 或 Maven 作為建置工具。 每個服務都將有一個可存取的 Swagger UI(例如,http://localhost:8081/swagger-ui/index.html
代表 job-service
)。 您也可以使用 CLI:
mn create-app --build=gradle_kotlin --jdk=21 --lang=java --test=junit --features=openapi,swagger-ui dev.job.job
(重複 perk-service
和 tag-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):
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") }
設定 application.yml
以啟用 Swagger UI 並指定每個微服務的 Swagger YAML 檔案的 URL:
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
在application.yml
中將API網關連接埠設定為8080:
server: port: 8080 spring: application: name: web-api-gateway
第 4 步:執行應用程式
啟動四個應用程式(三個 Micronaut 服務和 Spring Boot Gateway)。 網關的 Swagger UI 可透過 http://localhost:8080/webjars/swagger-ui/index.html
存取。
結論:
這種組合方法提供了強大且文件齊全的微服務架構。 Spring Cloud Gateway 有效地路由要求,而 Swagger 則提供集中式互動式 API 文件體驗。 此設定顯著提高了開發人員的工作效率和協作能力。請記得將佔位符 URL 替換為微服務 Swagger YAML 檔案的實際 URL。
以上是使用 Spring API Gateway 和 Micronaut 從 API 閘道聚合微服務和 Swagger UI的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用IntelliJIDEAUltimate版本啟動Spring...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...
