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.新 ...
最新文章
- PMP认证_计算题公式
- 找不到媳妇给愁的。。。
- Arduino编程之Serial.println()和Serial.print()
- 理解metrics.classification_report
- 最全“勒索病毒”的应对方案
- Sandboxie免费开源沙箱软件下载与详细使用教程
- 新编计算机组装与维护标准教程,计算机组装与维护标准教程(2015-2018版)
- 专题:2019世界移动通信大会(MWC)精彩纷呈,中国企业各出大招
- Springboot美食分享系统716y7计算机毕业设计-课程设计-期末作业-毕设程序代做
- 三种数学语言的相互转化
- CSDN邀您加入GitChat,让知识变现!
- Invalid HTTP_HOST header: ‘testserver‘. You may need to add ‘testserver‘ to ALLOWED_HOSTS
- duolingo 多邻国 安卓版无法使用口语功能
- 用JS写右下角烦人的弹窗小广告
- 斐波那契回调线怎么画_斐波那契回调线的运用
- [ML]归纳学习与机器学习概述
- 曲线坐标轴范围及刻度的自适应算法综述
- 高效学习 程序员练级攻略
- 尼玛,刚聊完就弹窗推荐,这些 APP 是在偷听吗?
- java中的内存图_各个JAVA场景下的内存图