Maison >Java >javaDidacticiel >Agréger l'interface utilisateur Swagger des microservices à partir d'une passerelle API à l'aide de Spring API Gateway et de Micronaut

Agréger l'interface utilisateur Swagger des microservices à partir d'une passerelle API à l'aide de Spring API Gateway et de Micronaut

Barbara Streisand
Barbara Streisandoriginal
2025-01-16 18:22:10960parcourir

Ce guide montre l'intégration de Swagger 3 (OpenAPI) avec Spring Cloud Gateway pour une documentation simplifiée de l'API de microservice. Nous exploiterons Java 21, Spring Boot 3.2 et Micronaut pour créer une solution robuste et conviviale.

Pourquoi choisir Swagger/OpenAPI ?

Swagger, désormais la spécification OpenAPI (OAS), est la principale norme de documentation API. Ses avantages incluent :

  • Norme industrielle : Largement adoptée et soutenue par un riche écosystème d'outils.
  • Documentation interactive : Génère une documentation conviviale permettant aux développeurs d'explorer et de tester directement les API.
  • Productivité améliorée des développeurs : Des fonctionnalités telles que la génération de code pour les SDK et les stubs de serveur accélèrent le développement d'API.
  • Collaboration améliorée : Fournit une compréhension commune des fonctionnalités de l'API pour les développeurs, les testeurs et les parties prenantes.
  • Tests et débogage simplifiés : L'interface utilisateur Swagger comprend une interface de test pour valider les réponses de l'API.
  • Support multilingue : S'intègre de manière transparente à diverses piles technologiques.
  • Intégration facile : Intégration simple avec des frameworks populaires comme Spring Boot et Micronaut.
  • Adapté à l'automatisation : Prend en charge l'automatisation pour la gestion du cycle de vie des API.
  • Open Source avec options d'entreprise : Disponible sous forme d'outil open source gratuit avec des options d'entreprise.

Spring Cloud Gateway : La Fondation

Spring Cloud Gateway, construit sur Spring Framework 5, Spring Boot 2 et Project Reactor, agit comme un point d'entrée central pour le routage et le filtrage des requêtes vers vos microservices.

Fonctionnement de Spring Cloud Gateway :

Le schéma ci-dessous illustre le fonctionnement de Spring Cloud Gateway :

Aggregate Microservices

Les demandes des clients sont évaluées par rapport aux itinéraires définis. Les demandes correspondantes sont traitées par un gestionnaire Web de passerelle, exécutant des pré- et post-filtres avant et après le proxy des demandes.

Création de l'application :

Aggregate Microservices

Prérequis :

  1. Java 21
  2. Gradle (ou Maven)
  3. Spring Boot 3.2 ou version ultérieure
  4. Compréhension de Spring Cloud Gateway et de Swagger
  5. Micronaute

Mise en œuvre étape par étape :

Étape 1 : Créer des applications Micronaut (emploi, avantage, services de balises)

Utilisez le lanceur Micronaut ([lien vers le lanceur]) pour créer trois applications Micronaut : job-service, perk-service et tag-service. Sélectionnez Java ou Kotlin, la dernière version stable de Micronaut, Swagger UI et OpenAPI comme fonctionnalités. Utilisez Gradle ou Maven comme outil de construction. Chaque service aura une interface utilisateur Swagger accessible (par exemple, http://localhost:8081/swagger-ui/index.html pour job-service). Vous pouvez également utiliser la 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>

(Répétez pour perk-service et tag-service, en ajustant le nom du package en conséquence).

Étape 2 : Créer la passerelle API Spring Boot

Utilisez Spring Initializr ([lien vers Spring Initializr]) pour générer un projet Spring Boot. Incluez les dépendances suivantes : Spring Cloud Gateway, Spring Boot Actuator et Spring Web.

Étape 3 : Intégrez Swagger dans la passerelle API

Ajoutez les dépendances Springdoc nécessaires à votre pom.xml (Maven) ou 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>

Configurez application.yml pour activer l'interface utilisateur Swagger et spécifiez les URL des fichiers YAML Swagger de chaque microservice :

<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>

Définissez le port API Gateway sur 8080 dans application.yml :

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

Étape 4 : Exécutez les applications

Démarrez chacune des quatre applications (trois services Micronaut et Spring Boot Gateway). L'interface utilisateur Swagger de Gateway sera accessible à http://localhost:8080/webjars/swagger-ui/index.html.

Aggregate Microservices

Conclusion :

Cette approche combinée fournit une architecture de microservices puissante et bien documentée. La Spring Cloud Gateway achemine efficacement les requêtes, tandis que Swagger offre une expérience de documentation API centralisée et interactive. Cette configuration améliore considérablement la productivité et la collaboration des développeurs. N'oubliez pas de remplacer les URL d'espace réservé par les URL réelles des fichiers Swagger YAML de vos microservices.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn