2016-06-13 29 views
13

Yay önyükleme uygulamamda takan fişlerim var. İlkbahar önyükleme, sahip olduğunuz her ortam için özellik dosyalarına sahip olmanızı sağlar. Bir üretim ortamı için swagger'ı devre dışı bırakmanın bir yolu var mı?Üretimde swagger-ui'yi nasıl kapatıyorsunuz

cevap

8

Biçimlendirici yapılandırmanızı ayrı bir yapılandırma sınıfına koyun ve @Profile ek açıklaması ile -> yalnızca belirli profillerde Bahar içeriğine taranmasını sağlayın.

Örnek: --spring.profiles.active=dev veya yapılandırma dosyası üzerinden: spring.profiles.active=dev

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

Sen daha senin Bahar Önyükleme uygulaması komut satırı üzerinden faaliyet profil tanımlayabilirsiniz.

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

Ben Swagger ihtiyacım neredeyse, biz yaptık SPRING_PROFILES_ACTIVE

+4

ortam değişkeni profili swagger eklemek ve bu görünür:

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

user301693

+0

@ user301693 Maven kullanıyorsanız, belirli bir Maven profilinde swagger bağımlılıklarını yükleyebilirsiniz, tahmin ettiğim yolu yapmalısınız. – g00glen00b

+1

@ g00glen00b ve diğer ortamlar için PROD için farklı yapay nesneler var mı? Bence QA ve OPS'li çocuklar bundan çok memnun olmazlar. – luboskrnac

1

Bu

benim yapılandırma sınıftır extension -> swagger-ui.html, api'nin bağırsaklarını göstermese de hala görünüyor. Swagger-ui.html'nin bile üretilmemesi için bunu yapmanın bir yolu var mı?
+1

tarafından sağlanan SO sorusuna bakın. Bu esasen yinelenen [diğer, çok daha eski yanıtlar] (https://stackoverflow.com/a/37796782/1240557) (ör. "Profil kullan") – kryger

+0

/swagger-ui.html Hala mevcut ama hiçbir yöntem yoktur. URL'yi yasaklamanın yolu var mı? – gstackoverflow

İlgili konular