一、Swagger介绍
前后端分离后,维护接口文档基本上是必不可少的工作。一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2就是其中之一。
二、Springboot整合Swagger2
2.1 导入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.2 添加配置文件
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createDocket(){
return new Docket(DocumentationType.SWAGGER_2)
//进入swagger-ui的信息
.apiInfo(apiInfo())
.select()
//暴露所有controller类的所在的包路径
.apis(RequestHandlerSelectors.basePackage("com.woniuxy.ticketorder.order"))
.paths(PathSelectors.any())
.build();
}
//进入swagger-ui的信息
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
//该项目的名字
.title("ly测试springboot+swagger2")
//该项目的描述
.description("项目测试描述")
.version("1.0")
.build();
}
}
2.3 修改OrderController
@Api(tags = "订单管理接口",description = "订单管理接口描述")
@RestController
@RequestMapping("/order")
public class OrderController {
@Autowired
private UserService userService;
@ApiOperation("添加订单的接口")
@ApiImplicitParams({
//给Swagger-UI中的输入框中设置默认值
@ApiImplicitParam(name = "id",value = "用户id",defaultValue = "123456"),
@ApiImplicitParam(name = "username", value = "用户名", defaultValue = "李四"),
@ApiImplicitParam(name = "address", value = "用户地址", defaultValue = "深圳", required = true)
}
)
@GetMapping("/add")
public String add(int id,String username,String address){
System.out.println(userService.add());
System.out.println(id + username + address);
return "调用了order/add方法";
}
}
此时访问 localhost:8080/swagger-ui.html 即可访问页面并测试
点击try it out即可传入参数进行测试
点击Execute即可发出请求