Diese Anleitung demonstriert die Integration von Swagger 3 (OpenAPI) mit Spring Cloud Gateway für eine optimierte Microservice-API-Dokumentation. Wir werden Java 21, Spring Boot 3.2 und Micronaut nutzen, um eine robuste und benutzerfreundliche Lösung zu schaffen.
Warum Swagger/OpenAPI wählen?
Swagger, jetzt OpenAPI Specification (OAS), ist der führende API-Dokumentationsstandard. Zu seinen Vorteilen gehören:
Spring Cloud Gateway: Die Grundlage
Spring Cloud Gateway basiert auf Spring Framework 5, Spring Boot 2 und Project Reactor und fungiert als zentraler Einstiegspunkt für die Weiterleitung und Filterung von Anforderungen an Ihre Microservices.
So funktioniert Spring Cloud Gateway:
Das folgende Diagramm veranschaulicht die Funktionsweise von Spring Cloud Gateway:
Client-Anfragen werden anhand definierter Routen ausgewertet. Passende Anfragen werden von einem Gateway-Web-Handler verarbeitet, der vor und nach der Proxy-Anfrage Vor- und Nachfilter ausführt.
Erstellung der Anwendung:
Voraussetzungen:
Schritt-für-Schritt-Umsetzung:
Schritt 1: Erstellen Sie Micronaut-Anwendungen (Job, Vergünstigungen, Tag-Dienste)
Verwenden Sie den Micronaut Launcher ([Link zum Launcher]), um drei Micronaut-Anwendungen zu erstellen: job-service
, perk-service
und tag-service
. Wählen Sie als Features Java oder Kotlin, die neueste stabile Micronaut-Version, Swagger UI und OpenAPI. Verwenden Sie Gradle oder Maven als Build-Tool. Für jeden Dienst ist eine Swagger-Benutzeroberfläche verfügbar (z. B. http://localhost:8081/swagger-ui/index.html
für job-service
). Sie können auch die 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>
(Wiederholen Sie dies für perk-service
und tag-service
und passen Sie den Paketnamen entsprechend an).
Schritt 2: Erstellen Sie das Spring Boot API Gateway
Verwenden Sie Spring Initializr ([Link zu Spring Initializr]), um ein Spring Boot-Projekt zu generieren. Schließen Sie die folgenden Abhängigkeiten ein: Spring Cloud Gateway, Spring Boot Actuator und Spring Web.
Schritt 3: Swagger in das API Gateway integrieren
Fügen Sie die erforderlichen Springdoc-Abhängigkeiten zu Ihrem pom.xml
(Maven) oder build.gradle
(Gradle) hinzu:
<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>
Konfigurieren Sie application.yml
, um die Swagger-Benutzeroberfläche zu aktivieren, und geben Sie die URLs für die Swagger-YAML-Dateien jedes Mikroservices an:
<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>
Setzen Sie den API-Gateway-Port in application.yml
:
<code class="language-yaml">server: port: 8080 spring: application: name: web-api-gateway</code>
Schritt 4: Führen Sie die Anwendungen aus
Starten Sie jede der vier Anwendungen (drei Micronaut-Dienste und das Spring Boot Gateway). Auf die Swagger-Benutzeroberfläche des Gateways kann unter http://localhost:8080/webjars/swagger-ui/index.html
.
Fazit:
Dieser kombinierte Ansatz bietet eine leistungsstarke und gut dokumentierte Microservice-Architektur. Das Spring Cloud Gateway leitet Anfragen effizient weiter, während Swagger ein zentralisiertes und interaktives API-Dokumentationserlebnis bietet. Dieses Setup verbessert die Produktivität und Zusammenarbeit der Entwickler erheblich. Denken Sie daran, Platzhalter-URLs durch die tatsächlichen URLs der Swagger-YAML-Dateien Ihrer Microservices zu ersetzen.
Das obige ist der detaillierte Inhalt vonAggregieren Sie die Swagger-Benutzeroberfläche von Microservices über ein API-Gateway mithilfe von Spring API Gateway und Micronaut. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!