2016-06-13 6 views
13

私は春の起動アプリケーションにプラグを差し込んでいます。スプリングブートは、あなたが持っている環境ごとにプロパティファイルを持つことができます。プロダクション環境のためにスワッガーを無効にする方法はありますか?生産中にswagger-uiをオフにするには

答えて

8

あなたのすばらしい設定を別の設定クラスに入れて、@Profile annotation - >アノテーションを付けると、特定のプロファイルでのみSpringコンテキストにスキャンされます。

例:--spring.profiles.active=devや設定ファイル経由:spring.profiles.active=dev

@Configuration 
@EnableSwagger2 
@Profile("dev") 
public class SwaggerConfig { 
    // your swagger 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", "[email protected]")) 
       .build(); 
    } 
} 

私が闊歩を必要な場所に、私たちはこれをやったSPRING_PROFILES_ACTIVE

+4

環境変数にプロファイルswaggerを追加し、それが表示されます。

Read this section of Spring Boot docs for more info about @Profile

user301693

+0

@ user301693 Mavenを使用している場合は、特定のMavenプロファイル内でスワッガー依存関係を読み込むことができます。 – g00glen00b

+1

@ g00glen00b、およびPRODのアーティファクトは他の環境とは異なりますか?私はQAとOPSの人はあまり幸せではないだろうと思う。 – luboskrnac

1

この

は私のコンフィギュレーションクラスですextension - > swagger-ui.htmlは表示されていなくても表示されます。 swagger-ui.htmlが作成されないようにする方法はありますか?
+1

によって提供されたSOの質問を参照してくださいこれは本質的に(もう一度、より古い回答)(https://stackoverflow.com/a/37796782/1240557)(すなわち「使用プロファイル」) – kryger

+0

/swagger-ui.htmlを複製しますまだ利用可能ですが、方法はありません。 URLを禁止する方法はありますか? – gstackoverflow

関連する問題