SpringFox Boot Starter: как отключить swagger-ui для рабочего профиля?

Я использую io.springfox springfox-boot-starter v 3.0.0,

Согласно документации, эта настройка Spring Boot отключит конечную точку swagger для prod:

      @Configuration
@Profile({"!prod && swagger"})
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .useDefaultResponseMessages(false)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

...

При работе с продуктом определенные здесь настройки swagger действительно отсутствуют, но конечная точка пользовательского интерфейса Swagger все еще существует. Как я могу подавить /swagger-ui/конечная точка вообще? Нет ничего лучше springfox.swagger-ui.enabled=false свойство, которое я могу установить где-нибудь в конфигурации приложения весенней загрузки?

3 ответа

Вы можете отключить, используя свойство ниже

      springfox.documentation.enabled=false

API Springfox Boot Starter по умолчанию включает конфигурацию «автоматический запуск», что означает HTML-страницу пользовательского интерфейса Swagger (например, /swagger-ui/index.html) и страницу JSON Api-Docs (/v2/api-docs), содержащую swagger с Все определения API.

Для производственной среды рекомендуется отключить всю документацию по API.

Чтобы отключить все автоматические настройки swagger, вы можете добавить в свой файл application-prod.properties свойство ниже:

springfox.documentation.auto-startup=false

В этом случае с вашим конфигом на prod у вас нет ничего о чванстве.

Если вы хотите полностью удалить ресурсы, связанные с чванством, подумайте об этом во время компиляции.

Если вы используете Apache Maven, легко контролировать зависимости и конфигурацию времени выполнения в профиле Maven, например swagger.

При сборке для производства выполните следующую команду.

      mvn package -Pprod

// for dev stage.
mvn clean spring-boot:run -Pdev,swagger

Мой пример немного старый, он использовал Maven для управления различной конфигурацией на разных этапах.

Другие вопросы по тегам