目录
Swagger
- Swagger是一款基于RESTful接口的用于文档在线自动生成和功能测试的开发工具
- 为了减少前后端开发人员在开发期间的频繁沟通,可以使用Swagger提供的接口文档和线上接口进行前后端功能联调(前端代码和后端代码可以独立开发,后端开发人员不必立即理解前端代码的实现细节)
- Swagger工具的功能:
- 辅助接口设计
- 辅助接口开发
- 生成接口文档
- 进行接口测试
- Mock接口
- 接口管理
- 接口检测
- Swagger可以整合到SpringBoot项目中并生成RESTful API文档,减少了开发者创建文档的工作量,同时将接口的说明内容整合在Java代码中,让维护文档和修改代码合为一体,可以让开发者在修改代码逻辑的同时方便地修改文档说明
Swagger工具集
- Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger1.2文档转换成Swagger2.0文档等功能。
- Swagger-core:用于Java/Scala的Swagger实现。与JAX-RS(Jersey、Resteasy、CXF…)、Servlets和Play框架进行集成。
- Swagger-js:用于JavaScript的Swagger实现。
- Swagger-node-express:Swagger模块,用于node.js的Express web应用框架。
- Swagger-ui:一个无依赖的HTML、JS和CSS集合,可以为Swagger兼容API动态生成优雅文档。
- Swagger-codegen:一个模板驱动引擎,通过分析用户Swagger资源声明以各种语言生成客户端代码
Swagger注解
- @Configuration:表明这是一个配置类
- @EnableSwagger2:开启Swagger2
- @Api:放在类上,描述一个类的基本信息。
- @ApiOperation:放在方法上,描述一个方法的基本信息
- value:对方法作用的一个简短描述
- notes:用来备注该方法的详细作用
- @ApiImplicitParams:用在方法上,包含一组参数说明
- @ApiImplicitParam:用来注解来给方法入参增加说明,一个请求能数
- paramType:指方法参数的类型,可选值如下
- path,参数获取方式:@PathVariable
- query,参数获取方式:@RequestParam
- header,参数获取方式:@RequestHeader
- body
- form
- name:参数名称,和参数变量相对应
- value:参数的描述信息
- required:该字段是否必填
- defaultValue:该字段的默认值
- @ApiResponses:用于表示一组响应。
- @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
- code:响应码
- message:描述信息,例如“请求参数没填好”
- response:抛出异常的类
- @ApiModel:用对象来接收参数,描述一个Model的信息(一般用于在请求参数无法使用@ApiImplicitParam注解进行描述的时候)
- @ApiModelProperty:用对象接收参数时,描述对象的一个字段
- @ApiIgnore:不对某个接口生成文档
- @ApiError :发生错误返回的信息