1swagger优势:
1.1文档自动生成。不用担心修改接口代码之后忘记更新文档的尴尬。
1.2支持在线测试。不需要再用postman等,可以直接进行测试,并获取内容。
2特点:
2.3它是Spring Framework的Swagger集成。它可以自动检查您的类,检测控制器,它们的方法,它们使用的模型类以及它们映射到的URL。没有任何手写文档,只需检查应用程序中的类,它就可以生成大量有关API的信息。
2.4它还提供了一个Web UI,它可以将元数据转换为一个很好的HTML文档。此外,通过该UI,您不仅可以浏览有关API端点的信息,还可以将UI用作REST客户端 - 您可以调用任何端点,指定要发送的数据并检查响应。它非常方便。
3API属性描述:
2.1它可以使用JSON或YAML元数据描述API的属性。
Swagger API Spec对你Rest API的每一个操作的请求消息的参数(Path,Query,Body,Form),响应消息的状态码和消息体的json结构都进行了详细的描述。
Swagger API Spec包含以下部分:
swagger,指定swagger spec版本,2.0
info,提供API的元数据
tags,补充的元数据,在swagger ui中,用于作为api的分组标签
host,主机,如果没有提供,则使用文档所在的host
basePath,相对于host的路径
schemes,API的传输协议,http,https,ws,wss
consumes,API可以消费的MIME类型列表
produces,API产生的MIME类型列表
paths,API的路径,以及每个路径的HTTP方法,一个路径加上一个HTTP方法构成了一个操作。每个操作都有以下内容:
tags,操作的标签
summary,短摘要
description,描述
externalDocs,外部文档
operationId,标识操作的唯一字符串
consumes,MIME类型列表
produces,MIME类型列表
parameters,参数列表
responses,应答状态码和对于的消息的Schema
schemes,传输协议
deprecated,不推荐使用
security,安全
definitions,定义API消费或生产的数据类型,使用json-schema描述,操作的parameter和response部分可以通过引用的方式使用definitions部分定义的schema
parameters,多个操作共用的参数
responses,多个操作共用的响应
securityDefinitions,安全scheme定义
security,安全声明
externalDocs,附加的外部文档
2.2当然也可以使用注解描述API的属性
常用注解如下:
@Api:用在请求的类上,表示对类的说明
tags="说明该类的作用,可以在UI界面上看到的注解"
value="该参数没什么意义,在UI界面上也看到,所以不需要配置"
@ApiOperation:用在请求的方法上,说明方法的用途、作用
value="说明方法的用途、作用"
notes="方法的备注说明"
@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query --> 请求参数的获取:@RequestParam
· path(用于restful接口)--> 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
dataType:参数类型,默认String,其它值dataType="Integer"
defaultValue:参数的默认值
@ApiResponses:用在请求的方法上,表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类
@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性
4使用方式(官网截图):
4.1添加依赖(从maven中查找新的依赖版本即可):
添加完SwaggerUI依赖后就可以访问其提供的swagger-ui.html了,看依赖结构就知道咋回事了
4.2配置整合springboot,修改UI显示模块信息
(1)Docket配置
(2)Docket得路径及过滤配置
(3)自定义显示配置(APIInfo)
(4)返回信息配置
(5)OAuth-secured API配置
(6)静态文件路径映射配置
4.3校验springfox是否有效:
4.4Bean的校验
(1)添加bean校验依赖
(2)添加校验注解
(3)将校验的配置注入springfox配置中