web-dev-qa-db-fra.com

Comment désactiver swagger-ui en production

J'ai swagger branché à mon application de démarrage de printemps. Spring Boot vous permet d’avoir des fichiers de propriétés pour chaque environnement que vous possédez. Existe-t-il un moyen de désactiver swagger pour un environnement de production?

20
user301693

Placez votre configuration swagger dans une classe de configuration séparée et annotez-la avec l'annotation @Profile -> afin qu'elle soit analysée dans le contexte Spring uniquement dans certains profils.

Exemple:

@Configuration
@EnableSwagger2
@Profile("dev")
public class SwaggerConfig {
    // your swagger configuration
}

Vous pouvez définir le profil de votre application Spring Boot via la ligne de commande: --spring.profiles.active=dev ou via le fichier de configuration: spring.profiles.active=dev.

Lisez cette section de la documentation d'amorçage Spring pour plus d'informations sur @Profile

14
luboskrnac

Si vous travaillez sur plusieurs environnements, vous pouvez également utiliser @Profile as array

@Configuration
@EnableSwagger2
@Profile({"dev","qa"})
public class SwaggerConfig {
   // your swagger configuration
}
9
Pervez

Ceci est ma classe de configuration:

@Configuration
@Profile("swagger")
@EnableSwagger2
public class SwaggerConfig {

    @Value("${info.build.version}")
    private String buildVersion;

    @Bean
    public Docket documentation() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(regex("/rest/.*"))
                .build()
                .pathMapping("/")
                .apiInfo(metadata());
    }

    private ApiInfo metadata() {
        return new ApiInfoBuilder()
                .title("API documentation of our App")
                .description("Use this documentation as a reference how to interact with app's API")
                .version(buildVersion)
                .contact(new Contact("Dev-Team", "https://dev-website", "dev@mailbox"))
                .build();
    }
}

Partout où j'ai besoin de Swagger, j'ajoute le profil swagger à la variable d'environnement SPRING_PROFILES_ACTIVE

2
user3105453