Intégration de Swagger avec Spring Boot pour la documentation d'API

Structure du projet

Dépendances Maven Pour commencer, ajoutez les dépendences Swagger nécessaires dans votre fichier pom.xml :

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

Configuration de base Créez une classe de configuration pour activer Swagger dans votre application Spring Boot :

package com.configuration;

import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class ConfigurationSwagger {
    // L'interface Swagger sera accessible à l'adresse /swagger-ui.html
}

Configuration avancée Pour personnaliser davantage votre documenattion Swagger, voici une configuration étendue :

package com.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
@EnableSwagger2
public class ConfigurationSwaggerAvancee {

    // Bean principal de configuration Swagger
    @Bean
    public Docket docketPrincipal(Environment environnement) {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(informationsApi())
                .nomGroupe("Groupe-Principal")
                .selectionner()
                .apis(RequestHandlerSelectors.basePackage("com.controleur"))
                .construire();
    }

    // Deuxième bean pour créer un groupe d'API séparé
    @Bean
    public Docket docketSecondaire(Environment environnement) {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(informationsApi())
                .nomGroupe("Groupe-Secondaire")
                .selectionner()
                .apis(RequestHandlerSelectors.basePackage("com.controleur"))
                .construire();
    }

    // Configuration des métadonnées de l'API
    private ApiInfo informationsApi() {
        Contact contact = new Contact("NomAuteur",
                "https://example.com/profil",
                "contact@example.com");
        
        return new ApiInfo(
                "Documentation API - Swagger",
                "Description détaillée de notre API",
                "v1.0",
                "https://example.com/terms",
                contact,
                "Licence Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList<>());
    }
}

Cette configuration permet de :

  • Définir plusieurs groupes d'API pour mieux ograniser la documentation
  • Spécifier les packages à scanner pour les endpoints
  • Personnalisre les informations affichées dans l'interface Swagger

Étiquettes: Spring Boot Swagger API Documentation Java REST API

Publié le 1 juillet à 05h06