前后端人员联系的纽带Swagger

349 阅读3分钟

Swagger

一、描述

现代化的研发组织架构中,一个研发团队基本包括了 产品组、后端组、前端组、APP端研发、 测试组、 UI 组等,各个细分组织人员各司其职,共同完成产品的全周期工作。如何进行组织架构内的有效高效沟通就显得尤其重要。其中,如何构建一份合理高效的接口文档更显重要。 随着互联网技术的发展,现在的网站架构基本都由原来的后端变成前后端分离。前后端的唯一联系,是通过API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要。

二、API文档

解决方案:手写文档完成前后端开发

开发文档手册:

wenku.baidu.com/view/f88529…

手写文档存在的问题

  • 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。
  • 接口返回结果不明确
  • 不能直接在线测试接口,通常需要使用工具,比如:Postman
  • 接口文档太多,不好进行维护管理
  • 文档是接口提供方手动导入的,是静态文档,没有提供接口测试功能

三、 Swagger

1、简介

官网:swagger.io/ Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 Swagger 也就是为了解决这个问题,当然也不能说 Swagger 就一定是完美的,当然也有缺点,最明显的就是代码植入性比较强。

作用:

  1. 接口的文档在线自动生成。

  2. 功能测试。

2、Swagger组件

Swagger是一组开源项目,其中主要要项目如下:

  1. Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger 1.2文档转换成Swagger 2.0文档等功能。
  2. Swagger-core: 用于Java/Scala的的Swagger实现。与JAX-RS(Jersey、Resteasy、CXF...)、Servlets和Play框架进行集成。
  3. Swagger-js: 用于JavaScript的Swagger实现。
  4. Swagger-node-express: Swagger模块,用于node.js的Express web应用框架。
  5. Swagger-ui:一个无依赖的HTML、JS和CSS集合,可以为Swagger兼容API动态生成优雅文档。
  6. Swagger-codegen:一个模板驱动引擎,通过分析用户Swagger资源声明以各种语言生成客户端代码。

3、Swagger集成

1.增加 Swagger2 所需依赖

2创建Swagger2配置类

1 、类描述

@Api:用在请求的类上,表示对类的说明

tags="说明该类的作用,可以在UI界面上看到的注解"

value="该参数没什么意义,在UI界面上也看到,所以不需要配置"

2、 方法描述

@ApiOperation:用在请求的方法上,说明方法的用途、作用

value="说明方法的用途、作用" notes="方法的备注说明"

3、方法参数描述

@ApiImplicitParams:用在请求的方法上,表示一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

name:参数名

value:参数的汉字说明、解释

required:参数是否必须传

paramType:参数放在哪个地方

defaultValue:参数的默认值

4、方法响应参数

@ApiResponses:用在请求的方法上,表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

code:数字,例如400 message:信息,例如"请求参数没填好" response:抛出异常的类