前后端协同开发的时候,交流的方式就是API接口,所以需要快速定义出API接口,让开发工作可以同时进行,最原始的办法就是写文档,手敲,速度不仅慢还难以修改,后来我们使用淘宝的RAP,目前已经更新到RAP2了,它可以线上设计接口,大大提升了协同开发效率,但是却没有和code联系起来,现在我们使用swagger,嵌入到项目中,接口文档和项目接口直接关联,这样的接口文档真实且及时,特别是项目开发完成后新增接口,能够快速提供接口文档信息,但是在项目开发初期可能没法快速提供所有接口给前端,所以各有各的特点,选择合适的就可以了,这里就来说说swagger。
谈到swagger,就必须要说The OpenAPI Specification (OAS),开放API规范,OAS致力于为REST APIs 定义一个标准的,与语言无关的接口。OpenAPI的前身是swagger规范,所以他们的关系就不言而喻了吧。OSA规范定义了一系列的文件,用以描述API。这些文件可以被Swagger-UI项目用于展示API,也可以被Swagger-Codegen项目用于生成代码。一些其他的工具也可以利用这些文件,例如测试工具。发布版本情况如下:
版本 | 发行日期 | 说明 |
---|---|---|
2.0 | 2014-09-08 | Release of Swagger 2.0 |
1.2 | 2014-03-14 | Initial release of the formal document. |
1.1 | 2012-08-22 | Release of Swagger 1.1 |
1.0 | 2011-08-10 | First release of the Swagger Specification |
定义规范的目的是为了跨语言跨平台,让swagger使用起来更加统一。下面我们来说说swagger系列的工具的作用,你需要了解springfox、swagger-springmvc、swagger-ui他们之间的关系是什么。springfox是由系列组件构成,他是OAS在Java Spring的实现,主要由springfox-swagger2、springfox-swagger-ui等组成,springfox-swagger2的前身是swagger-springmvc,swagger-springmvc整合了springmvc和swagger,用来检测Spring容器中Controller接口并提供访问。springfox-swagger-ui用来提供一个友好的UI界面展示springfox-swagger2获取到的接口数据,所以他们两个通常是一起使用的。