本内容根据江南一点雨松哥的 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 的基本使用相关推荐

  1. 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)

    本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...

  2. NSwagStudio for Swagger Api

    本案例主要说明如何使用NSwag 工具使用桌面工具快速生成c# 客户端代码.快速的访问Web Api. NSwagStudio 下载地址 比较强大.可以生成TypeScript.WebApi Cont ...

  3. Spring Boot集成Swagger导入YApi@无界编程

    接口APi开发现状 现在开发接口都要在类似YApi上写文档,这样方便不同的团队之间协作,同步更新接口,提高效率. 但是如果接口很多,你一个个手工在YApi去录入无疑效率很低. 如果是使用Spring ...

  4. oracle web API,在Web API程序中使用Swagger做接口文档

    #### 创建Web API程序 在VS2019中创建一个ASP.NET Web应用程序,选择Web API来创建RESTful的HTTP服务项目,构选MVC和Web API核心引用. #### 安装 ...

  5. MP实战系列(二)之集成swagger

    其实与spring+springmvc+mybatis集成swagger没什么区别,只是之前写的太不好了,所以这次决定详细写. 提到swagger不得不提rest,rest是一种架构风格,里面有对不同 ...

  6. Swagger 生成 PHP restful API 接口文档

    需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...

  7. 扔掉Swagger,试试这款功能强大,零注解侵入的API接口文档生成工具!

    欢迎关注方志朋的博客,回复"666"获面试宝典 介绍 smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-d ...

  8. 你还在用Swagger?试试这个神器!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Java旅途/ 周明尧(本文来自作者投稿) 今天给大 ...

  9. 还在用Swagger生成接口文档?我推荐你试试它.....

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 JApiDocs是一个无需额外注解.开箱即用的SpringBoot ...

  10. 终于放弃了单调的 Swagger 了,选择了这款神器 Knife4j

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:最美分享Coder toutiao.com/i6789135 ...

最新文章

  1. 一种将快捷方式从开始菜单“常用应用”的中去除的方法
  2. 卫星任务规划 单站多星
  3. iframe,window,滚动栏的一些问题
  4. 《领域模型》——通过重构得到更深层次的理解
  5. SpringMVC+RestFul详细示例实战教程(实现跨域访问)
  6. Go image: unknown format 错误解决
  7. 链表之打印两个有序链表的公共部分
  8. date数据要在前台显示
  9. 深入学习二叉树(三) 霍夫曼树
  10. 石头高墙怎么放_朱良志:古人对石头的审美
  11. php检测php.ini是否配制正确
  12. Codeforces Round #567 (Div. 2)
  13. UVA - 10129 Play on Words(欧拉回路)
  14. this.controls指所有控件吗?_PPT特效制作案例:2019年小目标,你定了吗?(用文本框控件制作)...
  15. html用锚点回到顶部代码,纯css实现回到顶部-jq回到顶部方法
  16. ISO9000、CMM(I)、6sigma与对象分析技术
  17. [18调剂]天津大学软件学院软件工程(专业学位)全日制及非全日制研究生接收院内校内校外调剂...
  18. SQL基础-联接(join)
  19. 杨焘鸣 杨涛鸣:怎样建立自己的人脉网络
  20. vert.x web模块(七)

热门文章

  1. L1-002. 打印沙漏
  2. 计算机基础 20A卷,计算机应用基础统考模拟题操作题(全)
  3. 微信小程序加入微信支付功能
  4. 概率论专题-随机游动(复习笔记自用)
  5. asp 不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务
  6. LWN: 改进GCC的 -fanalyzer 选项!
  7. ATG droplet的并发
  8. H3C云实验室模拟器
  9. ONAP平台架构与5G蓝图
  10. Adobe Acrobat DC for Mac 无法由 pptx、docx 格式批量创建 PDF 文档的解决方法(格式损坏或无法打开)