| 
					
				 | 
			
			
				@ -0,0 +1,152 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.config; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Bean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Configuration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.builders.ApiInfoBuilder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.builders.ParameterBuilder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.builders.PathSelectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.builders.RequestHandlerSelectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.schema.ModelRef; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.service.ApiInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.service.Contact; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.service.Parameter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.spi.DocumentationType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.spring.web.plugins.Docket; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.swagger2.annotations.EnableSwagger2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import static com.google.common.base.Predicates.or; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import static springfox.documentation.builders.PathSelectors.regex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@EnableSwagger2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class SwaggerConfig { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static final String API_VERSION = "v1.0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    final String userAgentJson = "{\"id\":int,\"uid\":string,\"openid\":string,\"token\":string,\"lastUid\":string,\"platform\":int}"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private List<Parameter> addUseragent() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ParameterBuilder tokenPar = new ParameterBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Parameter> pars = new ArrayList<Parameter>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        tokenPar.name("userAgent").description(userAgentJson).modelRef(new ModelRef("string")).parameterType("header").required(false).defaultValue("").build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        pars.add(tokenPar.build()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return pars; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Docket publicAPI() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Parameter> pars = addUseragent(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new Docket(DocumentationType.SWAGGER_2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .groupName("Default") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .useDefaultResponseMessages(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .forCodeGeneration(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .pathMapping("/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .select() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .apis(RequestHandlerSelectors.basePackage("com.yihu")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .paths(PathSelectors.any()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .globalOperationParameters(pars) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .apiInfo(publicApiInfo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Docket privateAPI() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new Docket(DocumentationType.SWAGGER_2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .groupName("Private") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .useDefaultResponseMessages(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .forCodeGeneration(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .pathMapping("/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .select() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .paths(or(regex("/archaius"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/loggers*"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/mappings"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/pause"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/beans"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/health"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/resume"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/heapdump"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/env*"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/shutdown"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/configprops"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/auditevents"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/restart"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/trace"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/metrics*"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/refresh"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/dump"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/autoconfig"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/info"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        regex("/features"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .apiInfo(privateAPIInfo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Docket legacyAPI(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new Docket(DocumentationType.SWAGGER_2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .groupName("Legacy") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .useDefaultResponseMessages(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .forCodeGeneration(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .pathMapping("/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .select() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .paths(or(regex("/legacy/rest/v.*"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .build() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .apiInfo(legacyApiInfo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 测试client信息。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /*@Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    SecurityConfiguration security() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new SecurityConfiguration( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "ehr-browser", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "secret123", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "ROLE_CLIENT", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "test-app", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "ac04-47ec-9a9a-7c47bbcbbbd1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ApiInfo publicApiInfo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new ApiInfoBuilder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .title("众健信联平台API") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .description("众健信联平台API,提供后端基础数据接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .version(API_VERSION) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .termsOfServiceUrl("https://www.yihu.com") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .contact(new Contact("Jkzl Xiamen R & D Center Platform Development.", "https://www.yihu.com", "jzkl@jkzl.com")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .license("The Apache License, Version 2.0") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ApiInfo privateAPIInfo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new ApiInfoBuilder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .title("众健信联平台API") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .description("众健信联平台API,提供微服务监控接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .version(API_VERSION) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .termsOfServiceUrl("https://www.yihu.com") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .contact(new Contact("Jkzl Xiamen R & D Center Platform Development.", "https://www.yihu.com", "jzkl@jkzl.com")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .license("The Apache License, Version 2.0") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ApiInfo legacyApiInfo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new ApiInfoBuilder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .title("众健信联平台API") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .description("众健信联平台API,提供遗留版本后端基础数据接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .version(API_VERSION) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .termsOfServiceUrl("https://www.yihu.com") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .contact(new Contact("Jkzl Xiamen R & D Center Platform Development.", "https://www.yihu.com", "jzkl@jkzl.com")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .license("The Apache License, Version 2.0") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |