微服务项目学习之Swagger

社会主义新天地 提交于 2020-01-19 00:16:41

微服务项目学习之Swagger

什么是Swagger

Swagger是全球最大的OpenAPI规范(OAS)API开发工具框架,支持从设计和文档到测试和部署的整个API生命周 期的开发。 Swagger官方网站

Swagger的常用注解

在Java类中添加Swagger的注解即可生成Swagger接口,常用Swagger注解如下:
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiModel:用对象来接收参数
@ApiModelProperty:用对象接收参数时,描述对象的一个字段 @ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述
@ApiIgnore:使用 该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiImplicitParam:一个请求参数
@ApiImplicitParams:多个请求参数

@Api属性:

属性 描述
value url的路径值
tags 设置这个值、value的值会被覆盖
description 对api资源的描述
basePath 基本路径可以不配置
position 如果配置多个Api 想改变显示的顺序位置
produces For example, “application/json, application/xml”
consumes For example, “application/json, application/xml”
protocols Possible values: http, https, ws, wss.
authorizations 高级特性认证时配置
hidden 配置为true 将在文档中隐藏

@ApiOperation属性:

属性 描述
value url的路径值
tags 设置这个值、value的值会被覆盖
description 对api资源的描述
basePath 基本路径可以不配置
position 如果配置多个Api 想改变显示的顺序位置
produces For example, “application/json, application/xml”
consumes For example, “application/json, application/xml”
protocols Possible values: http, https, ws, wss.
authorizations 高级特性认证时配置
hidden 配置为true 将在文档中隐藏
response 返回的对象
responseContainer 这些对象是有效的 “List”, “Set” or “Map”.,其他无效
httpMethod “GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”
code http的状态码 默认 200
extensions 扩展属性

@ApiParam属性:

属性 描述
name 属性名称
value 属性值
defaultValue 默认属性值
allowableValues 可以不配置
required 是否属性必填
access 不过多描述
allowMultiple 默认为false
hidden 隐藏该属性
example 举例子

@ApiResponse属性:

属性 描述
code http的状态码
message 描述
response 默认响应类 Void
reference 参考ApiOperation中配置
responseHeaders 参考 ResponseHeader 属性配置说明
responseContainer 参考ApiOperation中配置

ResponseHeader属性:

属性 描述
name 响应头名称
description 头描述
response 默认响应类 Void
responseContainer 参考ApiOperation中配置

@ApiImplicitParam属性:

属性 取值 作用
parmType 查询参数类型
path 以地址的形式提交数据
query 直接跟参数完成自动映射赋值
body 以流的形式提交 仅支持POST
header 参数在request headers 里边提交
form 以form表单的形式提交 仅支持POST
dataType 参数的数据类型 只作为标志说明,并没有实际验证
Long
String
name 接收参数名
value 接收参数的意义描述
required 参数是否必填
true 必填
false 非必填
defaultValue 默认值

Swagger接口定义

@Api(value="cms页面管理接口",
description = "cms页面管理接口,提供页面的增、删、改、查") 
public interface CmsPageControllerApi {
@ApiOperation("分页查询页面列表") 
@ApiImplicitParams({ 
@ApiImplicitParam(name="page",value = "页码",required=true,paramType="path",dataType="int"), 
@ApiImplicitParam(name="size",value = "每页记录数",required=true,paramType="path",dataType="int")
})
 public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) ; 
}

在类中使用注解 ApiModelProperty 对属性注释:

@Data
public class QueryPageRequest extends RequestData { 
//站点id 
@ApiModelProperty("站点id") 
private String siteId; 
}

Swagger接口生成工作原理

1、系统启动,扫描到Swagger2Configuration类
2、在此类中指定了包路径,找到在此包下及子包下标记有@RestController注解的controller类
3、根据controller类中的Swagger注解生成接口文档。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!