Swagger 3 的基本使用
本内容根据江南一点雨松哥的 SpringBoot 付费视频所做的学习笔记,想具体详细了解内容的,请关注微信公众号:江南一点雨。
14.1 Swagger3 准备工作
swagger2和swagger3的区别
在 SpringBoot 中使用 Swagger3 需要导入以下依赖:
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>
我们导入依赖后,此时创建一个 HelloController 接口,Swagger3 会自动帮助我们生成接口文档,不需要在进行任何配置。
- 文档接口地址:http://localhost:8080/v3/api-docs
- 文档页面地址:http://localhost:8080/swagger-ui/index.html
我们访问文档页面地址可以看到项目的接口文档。
我们可以通过配置类修改接口文档UI的内容:
@Configuration
public class swaggerConfig {@BeanDocket docket(){// 设置 swagger的版本return new Docket(DocumentationType.OAS_30)// 选择生成接口文档.select()// 包所在的路径.apis(RequestHandlerSelectors.basePackage("org.crc.swagger3.controller"))// 当前包下所有接口都生成.paths(PathSelectors.any()).build()// 接口文档初始化,也就是设置接口文档的详细信息,.apiInfo(new ApiInfoBuilder().description("xxx 项目接口文档")// 联系人.contact(new Contact("crc","https://blog.csdn.net/cenrc?spm=1001.2101.3001.5343","2516313840@qq.com")).version("v1.0").title("API 测试文档").license("Apache 2.0").licenseUrl("http://www.apache.org/licenses/LICENSE-2.0").build());}
}
修改之后接口文档的页面:
14.2 Swagger 3 的基本使用
注意,这里出现的注解有部分是 swagger 2中的注解,但是在swagger 3 中同样适用。
@ApiOperation
注解。
在接口中添加 @ApiOperation
,用于表述接口的作用
@ApiOperation(value = "查询用户",notes = "根据 id 查询用户")
@GetMapping("/user/{id}")
public String getUserById(@PathVariable Integer id){return "user: " + id;
}
默认情况显示:
添加注解之后显示:
@ApiOperation
注解是 swagger 2 中提供的注解,swagger 3同样提供了一个类似的注解 @Operation
,可以实现与 @ApiOperation
注解一样的效果。
使用方式:
// swagger 2
@ApiOperation(value = "查询用户",notes = "根据 id 查询用户")
// swagger 3
@Operation(summary = "查询用户",description = "根据 id 查询用户")
@ApiImplicitParam
注解。
基本使用方式:
@ApiImplicitParam(paramType = "path",name = "id",value = "用户 id",required = true)
@GetMapping("/user/{id}")
public String getUserById(@PathVariable Integer id){return "user: " + id;
}
@ApiImplicitParam
注解是用于描述接口的参数信息。
其中 paramType 属性表示参数的类型,参数的类型有以下几种:
path : 表示参数放在地址栏中
query :表示参数是以 key / value 的形式传递
body :表示参数是放在请求体中
name 属性表示参数的名字,value 属性表示参数的表述信息,required 属性表示参数是否是必须的(注意,这里相对的是swagger 接口文档而言,与项目实际运行无关)。
如果存在多个参数需要进行描述信息,那么可以使用@ApiImplicitParams
注解。
@ApiImplicitParams({@ApiImplicitParam(paramType = "path",name = "id",value = "用户 id",required = true),@ApiImplicitParam(paramType = "body",name = "id",value = "用户 id",required = true)
})
默认情况显示:
添加注解之后显示:
@ApiResponses
注解。
通过使用 @ApiResponses
注解,我们可以设置接口返回状态码的提示信息。
@ApiResponses({@ApiResponse(responseCode = "200",description = "请求成功"),@ApiResponse(responseCode = "500",description = "请求失败")
})
@GetMapping("/user/{id}")
public String getUserById(@PathVariable Integer id){return "user: " + id;
}
默认情况显示:
添加注解之后显示:
与实体类相关的注解。
@ApiModel
注解 与@ApiModelProperty
的结合使用。
我们通过以上两个注解用户描述实体类的相关信息。
@ApiModel(value = "用户实体类",description = "这个类定义了用户的所有属性")
public class User {@ApiModelProperty(value = "用户 id")private int id;@ApiModelProperty("用户名")private String name;@ApiModelProperty("用户地址")private String address;
}@PostMapping("/user")
public User user(@RequestBody User user){return user;
}
默认情况显示:
添加注解之后显示:
Swagger 3 的基本使用相关推荐
- 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)
本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...
- NSwagStudio for Swagger Api
本案例主要说明如何使用NSwag 工具使用桌面工具快速生成c# 客户端代码.快速的访问Web Api. NSwagStudio 下载地址 比较强大.可以生成TypeScript.WebApi Cont ...
- Spring Boot集成Swagger导入YApi@无界编程
接口APi开发现状 现在开发接口都要在类似YApi上写文档,这样方便不同的团队之间协作,同步更新接口,提高效率. 但是如果接口很多,你一个个手工在YApi去录入无疑效率很低. 如果是使用Spring ...
- oracle web API,在Web API程序中使用Swagger做接口文档
#### 创建Web API程序 在VS2019中创建一个ASP.NET Web应用程序,选择Web API来创建RESTful的HTTP服务项目,构选MVC和Web API核心引用. #### 安装 ...
- MP实战系列(二)之集成swagger
其实与spring+springmvc+mybatis集成swagger没什么区别,只是之前写的太不好了,所以这次决定详细写. 提到swagger不得不提rest,rest是一种架构风格,里面有对不同 ...
- Swagger 生成 PHP restful API 接口文档
需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...
- 扔掉Swagger,试试这款功能强大,零注解侵入的API接口文档生成工具!
欢迎关注方志朋的博客,回复"666"获面试宝典 介绍 smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-d ...
- 你还在用Swagger?试试这个神器!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Java旅途/ 周明尧(本文来自作者投稿) 今天给大 ...
- 还在用Swagger生成接口文档?我推荐你试试它.....
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 JApiDocs是一个无需额外注解.开箱即用的SpringBoot ...
- 终于放弃了单调的 Swagger 了,选择了这款神器 Knife4j
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:最美分享Coder toutiao.com/i6789135 ...
最新文章
- 一种将快捷方式从开始菜单“常用应用”的中去除的方法
- 卫星任务规划 单站多星
- iframe,window,滚动栏的一些问题
- 《领域模型》——通过重构得到更深层次的理解
- SpringMVC+RestFul详细示例实战教程(实现跨域访问)
- Go image: unknown format 错误解决
- 链表之打印两个有序链表的公共部分
- date数据要在前台显示
- 深入学习二叉树(三) 霍夫曼树
- 石头高墙怎么放_朱良志:古人对石头的审美
- php检测php.ini是否配制正确
- Codeforces Round #567 (Div. 2)
- UVA - 10129 Play on Words(欧拉回路)
- this.controls指所有控件吗?_PPT特效制作案例:2019年小目标,你定了吗?(用文本框控件制作)...
- html用锚点回到顶部代码,纯css实现回到顶部-jq回到顶部方法
- ISO9000、CMM(I)、6sigma与对象分析技术
- [18调剂]天津大学软件学院软件工程(专业学位)全日制及非全日制研究生接收院内校内校外调剂...
- SQL基础-联接(join)
- 杨焘鸣 杨涛鸣:怎样建立自己的人脉网络
- vert.x web模块(七)