springboot集成swagger3

swagger3的springboot启动器jar包

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

注意:当前SpringBoot版本为2.5.6,Swagger3.0目前无法完全兼容SpringBoot2.6.x!

编写TestController代码

@RestController
@RequestMapping("test")
public class TestController {@GetMappingpublic Map<String, Object> get(@RequestParam String id) {Map<String, Object> r = new HashMap<>(1);r.put("id", id);return r;}@PostMappingpublic Map<String, Object> post() {Map<String, Object> r = new HashMap<>(1);r.put("code", 200);return r;}@PutMappingpublic Map<String, Object> put(String id) {Map<String, Object> r = new HashMap<>(1);r.put("id", id);return r;}@DeleteMappingpublic Map<String, Object> delete(String id) {Map<String, Object> r = new HashMap<>(1);r.put("id", id);return r;}
}

创建Swagger3Configuration

@Configuration
@EnableOpenApi
public class SwaggerConfig {private static final String VERSION = "0.0.1";@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.OAS_30).groupName("分组名称").apiInfo(apiInfo()).select()//要扫描的包.apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder()// 设置标题.title("文档标题")//联系人.contact(contact())//描述.description("xxx文档")//服务.termsOfServiceUrl("https://spring.io/")//许可证.license("Apache 2.0").licenseUrl("https://www.apache.org/licenses/LICENSE-2.0").version(VERSION).build();}private Contact contact (){return new Contact("SpringBoot", "https://spring.io/", "email");}
}

运行演示

访问网址:http://127.0.0.1:8081/swagger-ui/index.html

对接口进行注解

swagger中常用的注解

注解 作用 使用位置
@Api 表示对类的说明常用参数
@ApiOperation 说明方法的用途 方法
@ApiImplicitParams 里面可以包含多个@ApiImplicitParam 方法
@ApiImplicitParam 描述参数的用途 方法
@ApiModel 表示一个数据类的信息
@ApiModelProperty 描述数据类的属性 属性
@ApiIgnore 忽略某个字段使之不显示在文档中 属性

接口基本使用

1.新建一个用户实体类

@ApiModel("用户")
@Data
public class User {@ApiModelProperty("用户名")private String username;@ApiModelProperty("密码")private String password;
}

2.给TestController添加注解

@Api(tags = "测试接口")
@RestController
@RequestMapping("test")
public class TestController {@ApiOperation("get请求")@GetMapping@ApiImplicitParam(name = "id", value = "测试用id", dataTypeClass = String.class)public Map<String, Object> get(@RequestParam String id) {Map<String, Object> r = new HashMap<>(1);r.put("id", id);return r;}@ApiOperation("post请求")@PostMappingpublic Map<String, Object> post(@RequestBody User user) {Map<String, Object> r = new HashMap<>(1);r.put("code", 200);return r;}@ApiOperation("put请求")@PutMapping@ApiImplicitParam(name = "id", value = "put请求id", dataTypeClass = String.class)public Map<String, Object> put(String id) {Map<String, Object> r = new HashMap<>(1);r.put("id", id);return r;}@ApiOperation("delete请求")@DeleteMapping@ApiImplicitParam(name = "id", value = "delete请求id", dataTypeClass = String.class)public Map<String, Object> delete(String id) {Map<String, Object> r = new HashMap<>(1);r.put("id", id);return r;}
}

运行结果



集成更好的UI-knife4j

maven

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>

启动器

在SwaggerConfig类上添加**@EnableKnife4j**

@Configuration
@EnableOpenApi
@EnableKnife4j
public class SwaggerConfig

访问网站:http://127.0.0.1:8080/doc.html#/home

springboot集成swagger3与knife4j相关推荐

  1. SpringBoot 集成Swagger3+knife4j

    SpringBoot 集成Swagger3+knife4j 以下代码来自本人真实企业项目摘录 1. 导入SpringFox依赖 <!--Swagger3相关--><dependenc ...

  2. SpringBoot集成swagger3(powernode CD2207)(内含教学视频+源代码)

    SpringBoot集成swagger3(powernode CD2207)(内含教学视频+源代码) 教学视频+源代码下载链接地址:https://download.csdn.net/download ...

  3. Springboot 整合Swagger3 和 Knife4j

      前后端分离的项目,接口文档的存在十分重要.与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低.与swagger2相比新版的swa ...

  4. springboot 集成 swagger 和knife4j

    坐标引入 swagger坐标 <!--引入swagger--><dependency><groupId>io.springfox</groupId>&l ...

  5. SpringBoot集成knife4j实现Swagger接口文档

    前言:如果你是后台开发,提供restful接口给前端,建议你使用Swagger3提供restful的接口文档自动生成和在线接口调试.knife4j是对Swagger进一步封装,其优化了API文档的UI ...

  6. SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)

    一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具.接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发 ...

  7. SpringBoot集成邮箱功能并使用Knife4j测试

    SpringBoot集成邮箱功能并使用Knife4j测试 哔哩哔哩链接:https://www.bilibili.com/video/BV1uA411N7cm 1.获取163或QQ邮箱授权码 163邮 ...

  8. Springboot集成knife4j,Failed to start bean ‘documentationPluginsBootstrapper‘;导致系统不能正常启动

    Springboot集成knife4j,Springboot更新到2.6启动报错Failed to start bean 'documentationPluginsBootstrapper'; nes ...

  9. SpringBoot集成Redis并使用Knife4j测试

    SpringBoot集成Redis并使用Knife4j测试 基于若依的ruoyi-vue前后端分离版本,若依官网:http://www.ruoyi.vip/ 项目目录结构 项目的目录结构如下: 1.新 ...

最新文章

  1. 【清华集训2017】榕树之心
  2. 高并发架构系列:如何从0到1设计一个MQ消息队列
  3. linux服务器无网络确认,Linux服务器故障排查实用指南
  4. php程序怎么上传服务器,php本地文件上传到远程服务器
  5. Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)...
  6. 再思linux内核在中断路径内不能睡眠/调度的原因(2010)【转】
  7. vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。...
  8. html中如何设置艺术字体,html里怎么把字体变成艺术字
  9. Mysql分表,分区的区别和联系
  10. iOS最新面试题(一)
  11. 5G NGC — NRF 网络注册功能
  12. 移动UI设计-表单设计
  13. 零基础该如何学习区块链?
  14. 《变形金刚》成为现实 机器人变坦克
  15. 计算机基础知识(2)
  16. 微信小程序单行缩进与多行缩进
  17. TP5 框架 SQL 执行流程分析及 5.0.9 SQL 注入漏洞分析
  18. VIC-4.2.d.
  19. LeetCode(python3)——234.回文联表
  20. java中副本的意思,副本是什么意思?

热门文章

  1. 华为明年即将推出2款5nm芯片,覆盖中高端,或将全面反超高通
  2. C++变体数据类型—— VARIANT
  3. Linux新手学习起步
  4. org.xml.sax.SAXParseException;systemId:……文件提前结束
  5. Jmeter向数据库批量造数
  6. 数据校验@Validated(解决javax.validation.ConstraintViolationException问题)
  7. Python Pandas聚合函数
  8. kmp算法中的nextval
  9. php项目开发经验-2个月学习php经历
  10. Python学习日记(十六) time模块和random模块