1. springboot+spring securite 集成swagger2
2. nginx 配置外网不能访问host/swagger-ui.html
3 内网通过http://ip:port/ swagger-ui.html方式访问
此方式可以生成api文档,动态更新api文档。
集成
1.pom.xml 加上依赖
<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.java
@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.java
@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里添加如下代码
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 即可