一、背景介绍
1.Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。在项目开发中,根据业务代码自动生成API文档,给前端提供在线测试,自动显示JSON格式,方便了后端与前端的沟通与调试成本。
2.Swagger有一个缺点就是侵入性模式,必须配置在具体的代码里。
二、导入依赖
1.pom.xml
io.springfox
springfox-swagger2
2.2.2
io.springfox
springfox-swagger-ui
2.2.2
org.codehaus.jackson
jackson-core-asl
1.9.13
2.注释:
2.1.第一个是API获取的包
2.2.第二是官方给出的一个ui界面,这个界面可以自定义,默认是官方的
2.3.第三个是测试数据以JSON格式返回的依赖包
三、项目结构图
1.结构图
四、测试代码
1.swagger的配置类
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("API接口文档")
.description("用户信息管理")
.version("1.0.0")
.build();
}
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.fileput.controller")) //这里写的是API接口所在的包位置
.paths(PathSelectors.any())
.build();
}
}
2.controller
@RestController
@RequestMapping("/user")
@Api(value = "用户信息管理")
public class UserController {
UserDao userDao;
@RequestMapping(method = RequestMethod.POST,value = "/userById")
@ApiOperation(value = "获取用户信息", notes = "通过用户ID获取用户信息")
public Object findById(@ApiParam(value = "用户ID",required = true) int id){
return userDao.findById(id);
}
@RequestMapping(method = RequestMethod.POST,value = "/userByName")
@ApiOperation(value = "获取用户信息", notes = "通过用户姓名获取用户信息")
public Object findByName(@ApiParam(value = "用户姓名",required = true) String name){
return userDao.findByName(name);
}
}
3.dao
public interface UserDao {
User findById(Integer id);
User findByName(String name);
}
4.pojo
public class User {
int id;//用户ID
String name;//姓名
public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
5.application.properties
springfox.documentation.swagger.v2.path= /api-docs
在配置文件中,application.properties中声明:
springfox.documentation.swagger.v2.path: /api-docs
这个path就是json的访问request mapping.可以自定义,防止与自身代码冲突。
五、测试结果
1.API doc的显示路由是:http://localhost:8080/swagger-ui.html
六、结束
这就是对这个东西的总结,希望能帮助到你们!!!