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 :
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 :
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 :
Prérequis :
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
.
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!