SpringFox 学习
官网、源代码
参考
Springfox与swagger的整合使用
前言
Swagger
Swagger 是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础,对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,几乎支持所有语言)。
OAS本身是一个API规范,它用于描述一整套API接口,包括一个接口是GET还是POST请求啊,有哪些参数哪些header啊,都会被包括在这个文件中。它在设计的时候通常是YAML格式,这种格式书写起来比较方便,而在网络中传输时又会以json形式居多,因为json的通用性比较强。
swagger-springmvc 发展出 SpringFox
由于Spring的流行,Marty Pitt编写了一个基于Spring的组件swagger-springmvc,用于将swagger集成到springmvc中来。而springfox则是从这个组件发展而来,同时springfox也是一个新的项目。
pringfox-swagger2依然是依赖OSA规范文档,也就是一个描述API的json文件,而这个组件的功能就是帮助我们自动生成这个json文件,我们会用到的另外一个组件springfox-swagger-ui就是将这个json文件解析出来,用一种更友好的方式呈现出来。
使用
Spring Boot 和 Swagger UI 集成
Spring Boot 集成springfox后,默认就带了swagger-ui.html了,不需要此操作。如果想对界面进行定制,则需要先从 github swagger-ui 上下载Swagger-UI, 把该项目dist目录下的内容拷贝到项目的resources的目录public下,然后再修改(具体百度)。
注解
参考
swagger注解 详细说明
@Api
用在类上,说明该类的作用
@Api(value = "UserController", description = "用户相关api")
@ApiOperation
用在方法上,说明方法的作用
@ApiOperation(value = "查找用户", notes = "查找用户", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ApiImplicitParams
用在方法上包含一组参数说明
@ApiImplicitParam
用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
paramType:参数放在哪个地方
header–>请求参数的获取:@RequestHeader
query–>请求参数的获取:@RequestParam
path(用于restful接口)–>请求参数的获取:@PathVariable
body(不常用)
form(不常用)
name:参数名
dataType:参数类型
required:参数是否必须传
value:参数的意思
defaultValue:参数的默认值
@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "唯一id", required = true, dataType = "Long", paramType = "path"),
})
@ApiResponses
用于表示一组响应
@ApiResponse
用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如”请求参数没填好”
response:抛出异常的类
@ApiResponses(value = {@ApiResponse(code = 400, message = "No Name Provided") })
@ApiModel
Swagger-core builds the model definitions based on the references to them throughout the API introspection.
The @ApiModel allows you to manipulate the meta data of a model from a simple description or name change to a definition of polymorphism.
描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModel(value = "用户实体类")
@ApiModelProperty
描述一个model的属性
@ApiModelProperty(value = "登录用户")
@ApiIgnore //使用这个注解忽略这个接口
SpringFox 学习相关推荐
- Swagger 学习笔记 | Swagger 简介 | Springfox 简介 | Springfox 2.9.2 常用注解 | Spring Boot 整合 Swagger2 案例
文章目录 一.Swagger 简介 二.Springfox 简介 三.Springfox2.9.2 常用注解 四.SpringBoot 整合 Swagger2 4.1 引入Maven依赖 4.2 项目 ...
- springboot学习(七十三) springboot中使用springdoc替换swagger(springfox)
文章目录 前言 一.springdoc介绍 二.使用步骤 1.引入库 2. 创建一个spring配置类,添加springdoc的配置 3. 常用的swagger注解和springdoc的对应关系 4. ...
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- springfox源码_springfox 源码分析(七) 文档初始化
时间:2019-5-23 20:12:04 地点:家中 通过前面几篇文章对springfox的介绍,以及我们的学习准备工作,这篇我们将正式来探索springfox是如何初始化的 我们在学算法的时候,其 ...
- 最通俗易懂的SpringBoot经典学习笔记讲解
导读:课程概览 1. Spring Boot是什么 我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发 ...
- SpringBoot经典学习笔记
本文非原创,仅为自己方便查看转载,作者信息在下方,侵权删,感谢! 作者信息 本课程首发于 CSDN GitChat 达人课<跟武哥一起学Spring Boot>,该文档为课程详细笔记. 作 ...
- SpringBoot基础学习之整合Swagger框架(上篇)
前言: 小伙伴们,大家好,我是狂奔の蜗牛rz,当然你们可以叫我蜗牛君,我是一个学习Java半年多时间的小菜鸟,同时还有一个伟大的梦想,那就是有朝一日,成为一个优秀的Java架构师. 这个SpringB ...
- MyBatisPlus 学习笔记_MP的AR模式
狂神说 MyBatisPlus 学习笔记 一.快速入门 文档:https://mp.baomidou.com/ 使用第三方组件: 导入对应依赖 研究依赖如何配置 代码如何编写 提高扩展技术能力 步骤: ...
- Springboot 项目学习
Springboot 项目快速入门 参考视频:https://www.bilibili.com/video/BV1nV4y1s7ZN?spm_id_from=333.337.search-card.a ...
最新文章
- 收藏 | 精选11篇AI领域论文(附代码、数据集链接)
- 【自用】 Android Studio Gradle sync failed
- effective c++ 学习
- js pug 代码_pug模版学习(一)
- 机器人暮色枪骑皮肤_吃鸡幸运新转盘:新载具皮肤和纸盒武器皮肤!
- 【洛谷习题】填涂颜色
- 低代码平台,JeecgBoot v3.0版本发布—新里程牌开始,迎接VUE3版本到来
- iOS 9 学习系列:Storyboard References
- 您是如何开始使用Linux的?
- JAVA多线程----用--取钱问题1
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_3_编程思想转换体验Lambda的更优写法...
- 2021-08-30缺失的第一个正数
- qt之tcp通信,制作简易的仿qq功能
- 更改google桌面搜索的索引文件位置
- Ticket管理工具:Redmine
- VMware Workstation Pro 虚拟机启动失败 cpu虚拟化开启
- python求和函数详解_python求和函数sum()详解
- 实用思维导图、流程图模板合集,让你的头脑灵活起来
- python中r 4.2f%r,006 Python中的 字符串String
- 视频处理及MAX7456的图文解释
热门文章
- 深度学习利器之自动微分(2)
- opencv畸变校正的两种方法
- 11.7亿、苹果仅20%、1/4的时间看短视频...关于互联网,你必须知道的几个数字......
- 利用Word邮件合并插入图片
- 利用python对Excel进行读写操作
- python3GUI--翻译器By:PyQt5(附源码)
- 如何在HTML页面中编写大于号和小于号?(HTML实体)
- 适合人工智能AI的编程语言有哪些 哪些语言适用于人工智能 人工智能开发语言排行榜
- UG\NX二次开发 Visual Studio平台工具集介绍
- linux man手册返回错误 man: command exited with status 159