SpringBoot集成knife4j接口文档
knife4j介绍
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。
其他的详情请看官方文档: knife4j官方文档
首先创建一个spring boot 项目,然后加入knife4j 依赖。
pom.xml
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.7</version></dependency>
完整的依赖:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>spring-boot-knife4j-integrate</artifactId><version>0.0.1-SNAPSHOT</version><name>spring-boot-knife4j-integrate</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.7</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
代码配置:
Knife4jConfiguration 类中,加入knife4j的基本配置属性
完整代码如下:
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {@Bean(value = "defaultApi2")public Docket defaultApi2() {Docket docket=new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder()//.title("swagger-bootstrap-ui-demo RESTful APIs").description("# swagger-bootstrap-ui-demo RESTful APIs").termsOfServiceUrl("http://www.xx.com/").contact("1796789910@qq.com").version("1.0").build())//分组名称.groupName("2.X版本").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("com.example.springbootknife4jintegrate.controller")).paths(PathSelectors.any()).build();return docket;}
}
然后编写一个控制层来做测试:
@Api(tags = "首页模块")
@RestController
public class IndexController {@ApiImplicitParam(name = "name",value = "姓名",required = true)@ApiOperation(value = "例子")@ApiOperationSupport(author = "1796789910@qq.com")@GetMapping("/sayHi")public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){return ResponseEntity.ok("Hi:"+name);}
}
启动项目访问knife4j的接口文档页面:http://localhost:8080/doc.html
出现如下界面说明集成成功了。
增强特性:
这里主要是knife4j在Swagger基础之上做的一个增强模式,更多的大家请看官方文档,这里我主要
讲讲访问控制权限,如果我们在springboot开发中,在生产环境中我们的doc.html不能对外暴露,
或者说,测试环境需要增加用户名和密码的校验等,
spring:profiles:active: dev //区分对应的环境
测试环境:
knife4j:enable: true# 测试环境 开启Swagger的Basic认证功能,默认是falsebasic:enable: true# Basic认证用户名username: admin# Basic认证密码password: admin
生产环境直接不对外访问:
knife4j:enable: true# 开启生产环境屏蔽 无法访问接口 /doc.htmlproduction: true
其他好玩的,请自行读文档,调试开发,实例代码在github上面需要的请自行拉取:spring-boot-integrate
然后后续会集成更多的模块进去,需要请点个star。
SpringBoot集成knife4j接口文档相关推荐
- springboot集成Swagger2接口文档
<!-- Swagger 接口文档 --><dependency><groupId>io.springfox</groupId><artifact ...
- 【SpringBoot】22、SpringBoot中整合knife4j接口文档
在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护 接口文档使得项目开发过程中前后端工程师 ...
- springboot项目集成java接口文档生成工具knife4j
knifie knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并 ...
- SpringBoot 配置 generator代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
保姆级教程,逻辑删除及字段自动填充设置,特别要说明的是本次用的是MySQL数据库,如果使用Oracle数据库是,数据库配置需要改变,数据库表一定要大写,否则无法生成代码. 数据库表 CREATE TA ...
- SpringBoot 如何生成接口文档,老鸟们都这么玩的!
为什么要用Swagger ? " 作为一名程序员,我们最讨厌两件事:1. 别人不写注释.2. 自己写注释. 而作为一名接口开发者,我们同样讨厌两件事:1. 别人不写接口文档,文档不及时更新. ...
- knife4j接口文档
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名knife4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍 ...
- idea swagger生成接口文档_spring boot集成Swagger-UI接口文档
本文介绍如何用spring boot集成Swagger-UI,实现项目在线接口文档 一.Swagger-UI简介 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网对Swa ...
- Spring Boot 1.5.10项目引入knife4j接口文档
介绍 knife4j是一个在线接口文档项目,对swaggger2进行增强,页面更加美观,功能更加强大 背景 在前后端分离的趋势下,团队一直没有接口文档规范,联调接口全凭一个个接口去代码里扒,后端同事忙 ...
- 访问swagger/Knife4j 接口文档报错:java.lang.NumberFormatException: For input string: ““
目录 问题描述 解决过程 问题描述 报异常如下:java.lang.NumberFormatException: For input string: "" 虽然不影响使用,但是每次 ...
最新文章
- 初试linux编译(ubuntu+vim)+玩转智能蛇
- Linux虚拟内存,你理解到位了?
- 深入浅出Java垃圾回收机制
- Spark和Hadoop,孰优孰劣?
- (转)Javascript 面向对象编程(一):封装
- 动态添加JavaScript
- NgRx Store createSelector 返回的 selector 执行取数逻辑的单步调试
- location的hash部分和使用window.onhashchange实现ajax请求内容时使用浏览器后退和前进功能...
- C++Event机制的简单实现
- python 取模是什么意思_编程语言中,取余和取模的区别到底是什么?
- 技术说明的注释有点用,其他的完全是捣乱
- 信息安全习题(含答案)
- Tomcat内存溢出及配置解决方案
- 新颖的自我介绍_有创意的自我介绍10篇
- 浅谈CTP期货行情交易API
- 【蓝桥杯集训100题】scratch辨别质数合数 蓝桥杯scratch比赛专项预测编程题 集训模拟练习题第15题
- 快播将关闭QVOD服务器 清理低俗内容与涉盗版内容
- python画史迪仔_手把手教你如何使用Python来生成马赛克画!
- 基于python实现在线听音乐(QQ音乐)
- 使用Excel和Matlab批量修改图片名称