Swagger,Swagger-UI是什么?
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和
文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
Swagger 让部署管理和使用功能强大的API从未如此简单。
Swagger-UI简单而一目了然。它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线测试工
具。项目的设计架构中一直提倡使用TDD(测试驱动)原则来开发,swagger-ui在这方面更是能提供很大帮助。
简单来说就是提供统一的接口文档,方便调试。通过swagger可以在文档接口界面上直接调试接口。可以直接集成到项目中通过
配置文件,来打开和关闭接口文档,方便使用。
springMVC 集成Swagger,Swagger-UI(最简单配置)
1. 引入pom依赖(springMVC配置可用)
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
2.配置bean
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("your base package"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxxapi接口文档(所有编码为utf8)")
.version("1.0")
.description("api 文档描述")
.build();
}
}
3.注册配置bean(放在springMVC的配置文件中)
<bean class="mypackage.swagger.config.SwaggerConfig"></bean>
4.编写接口注释
@RestController
@RequestMapping(value = "/login")
@Api(description = "登陆页面")
public class AppLoginController {
@Autowired
private ILoginService loginService;
@ApiOperation(value = "用户密码登陆")
@ApiImplicitParams({
@ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String", paramType = "query", defaultValue = "13000000000"),
@ApiImplicitParam(name = "password", value = "密码", required = true, dataType = "String", paramType = "query", defaultValue = "123456") })
@RequestMapping(value = "login", method = RequestMethod.POST)
public AjaxResult login(String mobile, String password) {
... login ...
}
5.访问rest接口
项目根路径/v2/api-docs swageer根据接口生成的json文件,可以自定义UI来实现接口文档
项目根路径/swagger-ui.html 访问swagger-ui的rest接口界面,访问必须通过springMVC的DispatchServlet
更多的注解参照
Annotations: https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X