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?

17
demandé sur luboskrnac 2016-06-13 19:14:56

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

12
répondu luboskrnac 2016-06-13 18:29:18

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

1
répondu user3105453 2017-03-14 08:28:14

Si vous travaillez sur plusieurs environnements, alors vous pouvez aussi utiliser @Profil array

@Configuration
@EnableSwagger2
@Profile({"dev","qa"})
public class SwaggerConfig {
   // your swagger configuration
}
-1
répondu Pervez 2018-08-11 09:58:14