Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。swagger-bootstrap-ui是基于swagger-ui做了一些优化拓展!
该开源项目GitHub地址:点击这里
该开源项目中文文档地址:点击这里
相比于原生的swagger-ui,swagger-bootstarp-ui提供了更好的ui界面,以及入参,出参直观的分层;
下面将swagge-bootstrap-ui整合到springboot项目中:
1.导包pom.xml
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
io.springfox
springfox-bean-validators
2.9.2
com.github.xiaoymin
swagger-bootstrap-ui
1.9.3
io.swagger
swagger-annotations
1.5.22
io.swagger
swagger-models
1.5.22
2.加入Swagger2Config配置文件
@Slf4j
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class Swagger2Config implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/meta-INF/resources/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/meta-INF/resources/");
registry.addResourceHandler("/webjars
@Bean
public Docket assist() {
return new Docket(documentationType.SWAGGER_2)
.globalOperationParameters(setRequestHeaders())
//.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxxx.modules.assist.controller"))
//加了ApiOperation注解的类,才生成接口文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.groupName("帮助中心");
}
private List setRequestHeaders() {
ParameterBuilder ticketPar = new ParameterBuilder();
List pars = new ArrayList();
ticketPar.name("token").description("用户token")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build(); //header中的ticket参数非必填,传空也可以
pars.add(ticketPar.build()); //根据每个方法名也知道当前方法在设置什么参数
return pars;
}
}
3.建议在启动类中,直接将swagge-ui文档记录下来
public static void main(String[] args) throws Exception {
ConfigurableApplicationContext application = SpringApplication.run(StageApplication.class, args);
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
//String path = env.getProperty("server.servlet.context-path");
String active = env.getProperty("spring.profiles.active");
String maxFileSize = env.getProperty("spring.servlet.multipart.max-file-size"); //最大文件大小
String maxRequestSize = env.getProperty("spring.servlet.multipart.max-request-size"); //最大请求大小
log.info("n----------------------------------------------------------nt" +
"Application is running! Access URLs:nt" +
"Doc: tthttp://" + ip + ":" + port + "/doc.htmlnt" +
"spring-profiles-active: tt" + active + "nt" +
"max-file-size: tt" + maxFileSize + "nt" +
"max-request-size: tt" + maxRequestSize + "n" +
"----------------------------------------------------------");
}
4.完成,访问地址:http://locahost:8080/doc.html



