Heim > Java > javaLernprogramm > Aggregieren Sie die Swagger-Benutzeroberfläche von Microservices über ein API-Gateway mithilfe von Spring API Gateway und Micronaut

Aggregieren Sie die Swagger-Benutzeroberfläche von Microservices über ein API-Gateway mithilfe von Spring API Gateway und Micronaut

Barbara Streisand
Freigeben: 2025-01-16 18:22:10
Original
956 Leute haben es durchsucht

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:

  • Branchenstandard: Weit verbreitet und unterstützt durch ein umfangreiches Ökosystem an Tools.
  • Interaktive Dokumentation: Erstellt eine benutzerfreundliche Dokumentation, die es Entwicklern ermöglicht, APIs direkt zu erkunden und zu testen.
  • Verbesserte Entwicklerproduktivität: Funktionen wie die Codegenerierung für SDKs und Server-Stubs beschleunigen die API-Entwicklung.
  • Verbesserte Zusammenarbeit: Bietet ein gemeinsames Verständnis der API-Funktionalität für Entwickler, Tester und Stakeholder.
  • Vereinfachtes Testen und Debuggen: Die Swagger-Benutzeroberfläche enthält eine Testschnittstelle zur Validierung von API-Antworten.
  • Sprachübergreifende Unterstützung: Lässt sich nahtlos in verschiedene Technologie-Stacks integrieren.
  • Einfache Integration:Einfache Integration mit gängigen Frameworks wie Spring Boot und Micronaut.
  • Automatisierungsfreundlich: Unterstützt die Automatisierung für das API-Lebenszyklusmanagement.
  • Open Source mit Enterprise-Optionen: Verfügbar als kostenloses Open-Source-Tool mit Enterprise-Optionen.

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:

Aggregate Microservices

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:

Aggregate Microservices

Voraussetzungen:

  1. Java 21
  2. Gradle (oder Maven)
  3. Spring Boot 3.2 oder höher
  4. Verständnis von Spring Cloud Gateway und Swagger
  5. Mikronaut

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:

verwenden
<code class="language-bash">mn create-app --build=gradle_kotlin --jdk=21 --lang=java --test=junit --features=openapi,swagger-ui dev.job.job</code>
Nach dem Login kopieren

(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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Setzen Sie den API-Gateway-Port in application.yml:

auf 8080
<code class="language-yaml">server:
  port: 8080
spring:
  application:
    name: web-api-gateway</code>
Nach dem Login kopieren

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.

zugegriffen werden

Aggregate Microservices

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage