swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 restful风格的web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
swagger截止到今天已经发布了2.0到2.9十几个版本,最新的为2.9.0,本文使用的是2.6.1版本.考虑头条代码排版美观性阅读体验,文中部分关键代码以截图展示,文末附带git项目demo源码供初学者交流学习。
swagger项目介绍详情
1、pom.xml 添加依赖:
io.springfox springfox-swagger2 2.6.1io.springfox springfox-swagger-ui 2.6.1
2、创建User实体
![b2814bb9bb00111edcfe6da9d67ac067.png](https://img-blog.csdnimg.cn/img_convert/b2814bb9bb00111edcfe6da9d67ac067.png)
实体
3、在项目中创建swagger配置类
![2c1a595109b88a43c893b7ab47dd6aa6.png](https://img-blog.csdnimg.cn/img_convert/2c1a595109b88a43c893b7ab47dd6aa6.png)
swagger配置类
其中apis(RequestHandlerSelectors.basePackage("com.seejoke.swagger.controller")) 指定了以扫描包的方式进行,会把com.seejoke.swagger.controller包下的controller都扫描到。
4、创建UserController.java
![0178aa84c8e01c3c7fab710441d52f55.png](https://img-blog.csdnimg.cn/img_convert/0178aa84c8e01c3c7fab710441d52f55.png)
5、spring boot继承WebMvcConfigurationSupport后重载相关方法
![387e837eb905d7bae11dab8e19472b9e.png](https://img-blog.csdnimg.cn/img_convert/387e837eb905d7bae11dab8e19472b9e.png)
启动应用,浏览器访问:http://localhost:8080/swagger-ui.html
![03caad870c7d02d61af58a355d46fb5b.png](https://img-blog.csdnimg.cn/img_convert/03caad870c7d02d61af58a355d46fb5b.png)
swagger在线接口界面,如下:
![45c24f74d55f4edb8f094ac1158494e8.png](https://img-blog.csdnimg.cn/img_convert/45c24f74d55f4edb8f094ac1158494e8.png)
swagger相关注解使用总结:
@Api:用在类上,说明该类的作用
@ApiOperation:用在方法上,说明方法的作用
@ApiImplicitParams:用在方法上包含一组参数说明
@ApiImplicitParam:用在 @ApiImplicitParams 注解中,指定一个请求参数的各个方面
paramType:参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query -->请求参数的获取:@RequestParam
· path(用于restful接口)--> 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
name:参数名
dataType:参数类型
required:参数是否必须传
value:参数的意思
defaultValue:参数的默认值
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类
@ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:描述一个model的属性
项目源码
https://gitee.com/diaodiaofly/swagger.git