本指南示範了將 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中文網其他相關文章!

Java'splatFormIndependecemeansDeveloperScanWriteCeandeCeandOnanyDeviceWithouTrecompOlding.thisAcachivedThroughThroughTheroughThejavavirtualmachine(JVM),WhaterslatesbyTecodeDecodeOdeIntComenthendions,允許univerniverSaliversalComplatibilityAcrossplatss.allospplats.s.howevss.howev

要設置JVM,需按以下步驟進行:1)下載並安裝JDK,2)設置環境變量,3)驗證安裝,4)設置IDE,5)測試運行程序。設置JVM不僅僅是讓其工作,還包括優化內存分配、垃圾收集、性能調優和錯誤處理,以確保最佳運行效果。

toensurejavaplatFormIntence,lofterTheSeSteps:1)compileAndRunyOpplicationOnmultPlatFormSusiseDifferenToSandjvmversions.2)upureizeci/cdppipipelinelikeinkinslikejenkinsorgithikejenkinsorgithikejenkinsorgithikejenkinsorgithike forautomatecross-plateftestesteftestesting.3)

javastandsoutsoutinmoderndevelopmentduetoitsrobustfeatureslikelambdaexpressions,streams,andenhanced concurrencysupport.1)lambdaexpressionssimplifyfunctional promprogientsmangional programmanging,makencodemoreconciseandable.2)

Java的核心特點包括平台獨立性、面向對象設計和豐富的標準庫。 1)面向對象設計通過多態等特性使得代碼更加靈活和可維護。 2)垃圾回收機制解放了開發者的內存管理負擔,但需要優化以避免性能問題。 3)標準庫提供了從集合到網絡的強大工具,但應謹慎選擇數據結構以保持代碼簡潔。

Yes,Javacanruneverywhereduetoits"WriteOnce,RunAnywhere"philosophy.1)Javacodeiscompiledintoplatform-independentbytecode.2)TheJavaVirtualMachine(JVM)interpretsorcompilesthisbytecodeintomachine-specificinstructionsatruntime,allowingthesameJava

jdkincludestoolsfordEveloping and compilingjavacode,whilejvmrunsthecompiledbytecode.1)jdkcontainsjre,編譯器,andutilities.2)

Java的關鍵特性包括:1)面向對象設計,2)平台獨立性,3)垃圾回收機制,4)豐富的庫和框架,5)並發支持,6)異常處理,7)持續演進。 Java的這些特性使其成為開發高效、可維護軟件的強大工具。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版
好用的JavaScript開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

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