1. springboot+spring securite 集成swagger2html
2. nginx 配置外網不能訪問host/swagger-ui.html java
3 內網經過http://ip:port/ swagger-ui.html方式訪問nginx
此方式能夠生成api文檔,動態更新api文檔。git
集成github
1.pom.xml 加上依賴web
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency>
2.新建SwaggerWebMvcConfig.javaspring
@Configuration public class SwaggerWebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); // System.out.println("SwaggerWebMvcConfig addResourceHandlers" ); } }
3.新建SwaggerConfig.javaapi
@Configuration @EnableWebMvc @EnableSwagger2 public class SwaggerConfig { @Bean public Docket buildDocket() { // ParameterBuilder aParameterBuilder = new ParameterBuilder(); // aParameterBuilder // .parameterType("header") //參數類型支持header, cookie, body, query etc // .name("x-auth-token") //參數名 // .defaultValue("21423423") //默認值 // .description("header中token字段測試") // .modelRef(new ModelRef("string"))//指定參數值的類型 // .required(false).build(); //非必需,這裏是全局配置,然而在登錄的時候是不用驗證的 // List<Parameter> aParameters = new ArrayList<Parameter>(); // aParameters.add(aParameterBuilder.build()); return new Docket(DocumentationType.SWAGGER_2).groupName("sj") .apiInfo(buildApiInf()) // .globalOperationParameters(aParameters) // .host("localhost:20000") .select() .apis(RequestHandlerSelectors.basePackage("sjes.gateway.app.controller"))//controller路徑 .paths(PathSelectors.any()).build(); } private ApiInfo buildApiInf() { return new ApiInfoBuilder() .title("RestAPI Docs") .termsOfServiceUrl("http://www.github.com/kongchen/swagger-maven-plugin") .build(); } }
4.在WebSecurityConfigurerAdapter裏添加以下代碼springboot
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { web.ignoring(). antMatchers("/swagger-ui.html") .antMatchers("/webjars/**") .antMatchers("/v2/**") .antMatchers("/swagger-resources/**"); } }
5.http://localhost:{port}/swagger-ui.html 便可cookie