Comment désactiver swagger-ui dans la production
j'ai branché swagger à mon application de botte de printemps. Printemps de démarrage vous permet d'avoir des fichiers de propriétés pour chaque environnement que vous avez. Est-il un moyen de désactiver swagger pour un environnement de production?
3 réponses
mettez votre configuration swagger dans une classe de configuration séparée et annotez-la avec @Profile
annotation -> de sorte qu'il sera numérisée au Printemps contexte que dans certains profils.
Exemple:
@Configuration
@EnableSwagger2
@Profile("dev")
public class SwaggerConfig {
// your swagger configuration
}
vous pouvez définir le profil dans lequel votre application de démarrage de printemps opère via la ligne de commande:--spring.profiles.active=dev
ou via le fichier de configuration: spring.profiles.active=dev
.
lisez cette section de Spring Boot docs pour plus d'informations sur @Profile
voici 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();
}
}
là Où j'ai besoin de Swagger, j'ai ajouter le profil swagger
à la variable d'environnement SPRING_PROFILES_ACTIVE
Si vous travaillez sur plusieurs environnements, alors vous pouvez aussi utiliser @Profil array
@Configuration
@EnableSwagger2
@Profile({"dev","qa"})
public class SwaggerConfig {
// your swagger configuration
}