最近项目中有使用到Swagger,所以在网上找了些资料进行学习。
- 为了将开发解耦,提高生产力,就有了前后端分离的概念。
- 架构不再是简单的 MVC,JSP也不复存在,以前整个工程交由 Tomcat 部署的时代已然远去。
- 紧接着微服务概念落地,前端单独部署,以调用微服务 API 的形式构建成系统 。
- 前端架构的JQuery王朝已经落寞,Angular、React、Vue 三足鼎立的时代降临。
- 架构革新,进入了前后端分离,服务端只需提供RESTful API。
- 而构建RESTful API会考虑到多终端的问题,这样就需要面对多个开发人员甚至多个开发团队。
相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够的,随着时间推移,版本迭代,接口文档往往很容易就跟不上代码了。为了解决上面的问题,Swagger应运而生。他可以轻松的整合进框架,并通过一系列注解生成强大的API文 档。他既可以减轻编写文档的工作量,也可以保证文档的实时更新,将维护文档与修改代码融为一体,是目 前较好的解决方案。
常用注解 @Api()用于类; 表示标识这个类是swagger的资源
@ApiOperation()用于方法; 表示一个http请求的操作
@ApiParam()用于方法,参数,字段说明; 表示对参数的添加元数据(说明或是否必填等)
@ApiModel()用于类 表示对类进行说明,用于参数用实体类接收
@ApiModelProperty()用于方法,字段 表示对model属性的说明或者数据操作更改
@ApiIgnore()用于类,方法,方法参数 表示这个方法或者类被忽略
@ApiImplicitParam() 用于方法 表示单独的请求参数
@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam
其他博客更详细的介绍