web-dev-qa-db-ja.com

本番環境でswagger-uiをオフにする方法

スプリングブートアプリケーションにswaggerを接続しました。 Springブートを使用すると、所有する各環境のプロパティファイルを保持できます。実稼働環境でswaggerを無効にする方法はありますか?

28
user301693

Swagger構成を個別の構成クラスに配置し、@Profile注釈を付けて注釈を付けて、特定のプロファイルでのみSpringコンテキストにスキャンされるようにします。

例:

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

Spring Bootアプリが動作しているプロファイルは、コマンドライン:--spring.profiles.active=devまたは設定ファイルspring.profiles.active=devで定義できます。

@Profileの詳細については、Spring Bootのドキュメントのこのセクションを参照してください

22
luboskrnac

複数の環境で作業している場合は、@ Profileを配列として使用することもできます

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

これは私の構成クラスです:

@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();
    }
}

Swaggerが必要な場合はいつでも、プロファイルswaggerを環境変数SPRING_PROFILES_ACTIVEに追加します

2
user3105453

コード生成(Swagger2SpringBootを生成)を使用する場合:

  1. 独自のSwagger2SpringBootを(@Profileビットを使用して)作成し、自動生成されたパッケージパスと同じパッケージパスに配置します。
  2. Swagger-codegen-maven-pluginを編集して、生成された場所をsrc/main/Javaに配置します(ポイント1で独自のものを上書きします)。
  3. Swagger2SpringBootを上書きしないように.swagger-codegen-ignoreを編集します
  4. 他のものも上書きされることに注意してください。 pom.xmlおよびapplication.properties。それらも.swagger-codegen-ignoreに追加するだけです。

できた.

0
Jacques Koorts