一、Swagger介绍

前后端分离后,维护接口文档基本上是必不可少的工作。一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2就是其中之一。

二、Springboot整合Swagger2

2.1 导入依赖

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger2</artifactId>
  4. <version>2.9.2</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>io.springfox</groupId>
  8. <artifactId>springfox-swagger-ui</artifactId>
  9. <version>2.9.2</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-web</artifactId>
  14. </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 即可访问页面并测试
image.png
点击try it out即可传入参数进行测试
image.png
点击Execute即可发出请求