Swagger2?有何用?

首先给结论:swagger2 hin有用!!

怎么个有用法?从单体应用进入到前后端分离开发模式后,我们可能经历了这么几个时代:

口头传述+钉钉(QQ\微信)私聊时代

后端在开发完获取用户列表接口后。。。

	/**
     * 获取用户列表
     * @param name 用户名,用于模糊查询,可传可不传
     * @param current 第几页
     * @param size 每页大小
     * @return
     */
    @GetMapping("/user/list")
    public R getUserList(String name, Integer current, Integer size){
        return R.data(userService.getUserList(name, current, size));
    }

后端大胸弟:嗨,获取用户列表那个接口我开发完了,要传三个参数啊,其中name是用于模糊查询的,可传可不传,current和size是分页用的,必须传哈。等我钉钉发你请求路径啊。
前端小脑弟:好咧。
。。。
。。。
。。。
许久之后,当初项目开发人员离职,这个接口要更改需求。
接盘侠:%%()@#%#…ri**,接口文档都没!

后端编写维护接口文档时代

后端大胸弟:嗨,获取用户列表接口我开发完了,接口文档也写完了,这是接口文档地址http://xxxxx
前端小脑弟:好咧。
。。。
不久之后,产品改了需求,增加了个昵称的模糊查询。
后端大胸弟,改完接口,又改完接口文档后:嗨,这个接口改了下,多传一个参数。。。
。。。
不久之后,产品又改了需求。。。
后端大胸弟,又改完接口,哎烦死了不想写接口文档了,直接说这里改了下。。。
。。。
。。。
不久之后,发现接口文档和接口完全对不上。

Swagger2自动生成文档时代

后端大胸弟引入swagger2相关依赖包,把接口的注释改成了swagger注解。

	@GetMapping("/user/list")
    @ApiOperation("获取用户列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "name",value = "用户名,用于模糊查询,可传可不传", required = false, example = "小明"),
            @ApiImplicitParam(name = "size",value = "每页大小", required = true, example = "10"),
            @ApiImplicitParam(name = "current",value = "第几页", required = true, example = "1")
    })
    public R getUserList(String name, Integer current, Integer size){
        return R.data(userService.getUserList(name, current, size));
    }

然后再把自动生成的swagger文档扔给前端,再也不用写接口文档了,安逸!!
Swagger2?有何用?_第1张图片

你可能感兴趣的:(swagger)