接口文档管理《十六》

分布式架构中的各个服务最终产出restful 风格的API接口,提供给前端(ios,android,web)或其他第三方程调用,一份丰富完整的接口描述文档能够大大降低沟通成本。

swagger 由两部分组成:

swagger-codegen:生成json 格式的接口描述文档。

swagger-ui : 提供界面解析接口描述文档。

swagger官网:https://swagger.io/

Dubbo 中使用swagger2:

swagger 主要在controller中描述接口信息,在Dubbo 架构中所有的服务都将由网关模块调用dubbo服务转为restful api,所以swagger 的整合也将在网关模块中进行。

Maven-model

用于解析maven的pom文件中的内容

springfox-swagger2

用于生成接口描述文档的核心依赖

springfox-swagger-ui

用于解析接口描述的界面依赖

MavenXpp3Reader

读取Maven的pom文件内容,并获取版本

Apiinfo

用于配置该应用所产生的接口基本描述信息

Docket

用于构建swagger接口描述文档,并通过api指定接口所在的位置

@Api

接口将以Controller进行分组,该注解用于描述该Controller信息

@ApiOperation 

描述该接口的信息

Value

接口名称

Notes

接口详细描述

@ApiImplicitParam 

描述该接口所接受的参数信息

Name

参数名称

Value

参数介绍

ParamType

参数接收类型

DefaultValue

Swagger ui 中显示的默认值

dataType

参数类型

@ApiResponse

描述该接口的返回内容

Code

http 返回状态

Message

状态描述

Response

返回值类型

描述实体参数与返回实体信息:通过实体接收参数以及接口内容通过实体序列化为json已经是常用方法。

value:参数名称

example:默认数据

required:请求时该参数是否为必须的。

spring cloud 中使用swagger2:

在dubbo 中所有的controller 都集中在网关模块中,而spring cloud 的各controller 分布在各微服务模块中,并由zuul 代理对外暴露。在配置swagger 也同样如此,每个微服务将产出各自的json 格式的API 文档,并在zuul 网关中通过swagger UI统一管理。

Swagger注解

注解说明
Api用在类上,说明该类的作用
ApiModel描述一个 Model 的信息,使用 @RequestBody 的场景
ApiModelProperty描述一个 Model 的属性
ApiOperation用在方法上,说明方法的作用
ApiParam请求属性
ApiResponse用在 @ApiResponses 中,一般用于表达一个错误的响应配置
ApiResponses用于表示一组响应集配置
ResponseHeader响应头设置
ApiImplicitParams用在方法上包含一组参数说明
ApiImplicitParam用在 @ApiImplicitParams 注解中,指定一个请求参数的各个方面

Swagger注解属性

属性说明
valueurl的路径值
tags如果设置这个值、value的值会被覆盖
description对api资源的描述
basePath基本路径可以不配置
position如果配置多个Api 想改变显示的顺序位置
producesFor example, “application/json, application/xml”
consumesFor example, “application/json, application/xml”
protocolsPossible values: http, https, ws, wss.
authorizations高级特性认证时配置
hidden配置为true 将在文档中隐藏
response返回的对象,默认响应类 Void
responseContainer这些对象是有效的 “List”, “Set” or “Map”.,其他无效
httpMethod“GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”
codehttp的状态码 默认 200
message状态码对应的响应信息
extensions扩展属性
name属性名称
defaultValue默认属性值
allowableValues可以不配置
required是否属性必填
access不过多描述
allowMultiple默认为false
example举例子
reference参考ApiOperation中配置
responseHeaders参考 ResponseHeader 属性配置说明
description头描述
paramType参数放在哪个地方
dataType参数类型,有String/int,无用

项目展示:https://download.csdn.net/download/qq_35781178/10618578

项目展示:https://download.csdn.net/download/qq_35781178/10627784[jpa+mysql+redis+swagger]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值