本人因公司项目需求所以查阅前辈资料得出此心得,如有不对请大佬指出,我加以改正。
swagger-bootstrap-ui是springfox-swagger的增强UI实现,为Java开发者在使用Swagger的时候,能拥有一份简洁、强大的接口文档体验。
文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger-bootstrap-ui能根据该文档说明,对该接口的使用情况一目了然。
在线调试:提供在线接口联调的强大功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、headers、Curl请求命令实例、响应时间、响应状态码等信息,帮助开发者在线调试,而不必通过其他测试工具测试接口是否正确,简介、强大。
https://doc.xiaominfo.com/guide/useful.html
附带官网链接,UI展示图我这就不上传了,感兴趣的可以上官网查看。
接下来我们直接开始。
io.springfox
springfox-swagger2
2.9.2
com.github.xiaoymin
swagger-bootstrap-ui
1.9.3
可能还会用到以下包,我的项目里边有Hbase所以可能会有jar包冲突,具体也没有研究过,各位大神有知道的教教我,菜鸟在此谢谢了。所以各位根据自己的情况而定。
org.springframework
spring-aop
4.3.12.RELEASE
org.springframework
spring-aspects
4.3.12.RELEASE
此类里边我只写了一个功能,各位根据情况写几个,其他的配置可到官网查看。
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.data.controller")) //扫描你接口所在的位置
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//以下内容都是在swagger-bootstrap-ui首页展示的信息,根据自己情况编写
.title("swagger-bootstrap-ui RESTful APIs")
.description("简介")
.termsOfServiceUrl("服务Url")
.contact("<作者>")
.version("1.0")
.build();
}
}
@CrossOrigin
@RestController
@RequestMapping("/api")
@Api(tags = "数据探索")
在此特别说明下 @CrossOrigin ,此注解可有效的解决前后端跨域问题,亲测有效。也不一定适合所有项目,各位视情况而定。
@Api(tags = “tag”) 这个的分组名称,就是给你的接口起一个大名
@io.swagger.annotations.Api(tags = “接口的分组名”) 这种格式也是正确的
@RequestMapping(value = "/exportProject",method = RequestMethod.POST)
@ApiOperation(value = "数据导入库",notes = "数据导入库")
第一个注解大家应该都很清楚, 他是接口名称以及请求方法,他还有一种写法:@PostMapping("/compReportTop"),这种也是可以的,get方法只更换POST即可。
第二个就是今天的知识点,value:接口名称;notes:接口描述。
@ConditionalOnClass(SpringfoxWebMvcConfiguration.class)
@EnableAspectJAutoProxy(proxyTargetClass = true)
完成以上操作然后启动项目你就可以访问swagger-bootstrap-ui,那么怎么访问呢?
http://${host}:${port}/doc.html
没错就是访问这个链接。
swagger-bootstrap-ui感觉与postman意思差不多,但比postman视觉和感觉上更直观一点,毕竟是自己编写的,各个名称都是自己起得,所以感觉会好一点,只是个人观点,只求勿骂。
界面与功能我在这就不说了,还得大家自己去了解,用几次你就知道了。