springboot集成swagger3与knife4j
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相关推荐
- SpringBoot 集成Swagger3+knife4j
SpringBoot 集成Swagger3+knife4j 以下代码来自本人真实企业项目摘录 1. 导入SpringFox依赖 <!--Swagger3相关--><dependenc ...
- SpringBoot集成swagger3(powernode CD2207)(内含教学视频+源代码)
SpringBoot集成swagger3(powernode CD2207)(内含教学视频+源代码) 教学视频+源代码下载链接地址:https://download.csdn.net/download ...
- Springboot 整合Swagger3 和 Knife4j
前后端分离的项目,接口文档的存在十分重要.与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低.与swagger2相比新版的swa ...
- springboot 集成 swagger 和knife4j
坐标引入 swagger坐标 <!--引入swagger--><dependency><groupId>io.springfox</groupId>&l ...
- SpringBoot集成knife4j实现Swagger接口文档
前言:如果你是后台开发,提供restful接口给前端,建议你使用Swagger3提供restful的接口文档自动生成和在线接口调试.knife4j是对Swagger进一步封装,其优化了API文档的UI ...
- SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)
一. 接口文档概述 swagger是当下比较流行的实时接口文文档生成工具.接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发 ...
- SpringBoot集成邮箱功能并使用Knife4j测试
SpringBoot集成邮箱功能并使用Knife4j测试 哔哩哔哩链接:https://www.bilibili.com/video/BV1uA411N7cm 1.获取163或QQ邮箱授权码 163邮 ...
- Springboot集成knife4j,Failed to start bean ‘documentationPluginsBootstrapper‘;导致系统不能正常启动
Springboot集成knife4j,Springboot更新到2.6启动报错Failed to start bean 'documentationPluginsBootstrapper'; nes ...
- SpringBoot集成Redis并使用Knife4j测试
SpringBoot集成Redis并使用Knife4j测试 基于若依的ruoyi-vue前后端分离版本,若依官网:http://www.ruoyi.vip/ 项目目录结构 项目的目录结构如下: 1.新 ...
最新文章
- 【清华集训2017】榕树之心
- 高并发架构系列:如何从0到1设计一个MQ消息队列
- linux服务器无网络确认,Linux服务器故障排查实用指南
- php程序怎么上传服务器,php本地文件上传到远程服务器
- Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)...
- 再思linux内核在中断路径内不能睡眠/调度的原因(2010)【转】
- vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。...
- html中如何设置艺术字体,html里怎么把字体变成艺术字
- Mysql分表,分区的区别和联系
- iOS最新面试题(一)
- 5G NGC — NRF 网络注册功能
- 移动UI设计-表单设计
- 零基础该如何学习区块链?
- 《变形金刚》成为现实 机器人变坦克
- 计算机基础知识(2)
- 微信小程序单行缩进与多行缩进
- TP5 框架 SQL 执行流程分析及 5.0.9 SQL 注入漏洞分析
- VIC-4.2.d.
- LeetCode(python3)——234.回文联表
- java中副本的意思,副本是什么意思?
热门文章
- 华为明年即将推出2款5nm芯片,覆盖中高端,或将全面反超高通
- C++变体数据类型—— VARIANT
- Linux新手学习起步
- org.xml.sax.SAXParseException;systemId:……文件提前结束
- Jmeter向数据库批量造数
- 数据校验@Validated(解决javax.validation.ConstraintViolationException问题)
- Python Pandas聚合函数
- kmp算法中的nextval
- php项目开发经验-2个月学习php经历
- Python学习日记(十六) time模块和random模块