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 для управления различной конфигурацией на разных этапах.