关于knife4j

Knife4j是一个基于Swagger的Java接口文档生成工具,它提供了一套可视化的界面来展示和测试API接口。Knife4j通过解析接口代码中的Swagger注解,自动生成接口文档,并提供了交互式的API文档界面,方便开发者查看和测试接口。引用官方的一句描述Knife4j是一个集Swagger2 和 OpenAPI3 为一体的增强解决方案

安装配置

1、依赖引入

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

// 如果已经配置了swagger需要将swagger相关的依赖删除

2、配置knife4j

package com.example.common.conf;

import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; /**
* @ClassName: SwaggerConfig
* @Description: swagger配置文件
* @Author: WangBin
* @Date: 2023/5/18 23:35
* 访问地址:http://localhost:8080/demo/doc.html
*/
@Configuration
@EnableSwagger2WebMvc
public class SwaggerConfig {
@Bean(value = "defaultApi2")
public Docket defaultApi2() { Docket docket = new Docket(DocumentationType.SWAGGER_2)
// 是否启用Swagger
.enable(true)
//分组名称
.groupName("1.0版本")
// 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
.apiInfo(apiInfo())
// 设置哪些接口暴露给Swagger展示
.select()
// 扫描所有有注解的api,用这种方式更灵活
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
//指定Controller扫描包路径
// .apis(RequestHandlerSelectors.basePackage("com.yuyun.controller"))
// 扫描所有
// .apis(RequestHandlerSelectors.any())
.build();
return docket;
} private ApiInfo apiInfo() { String name = "路遥";
String url = "https://www.cnblogs.com/tanxj/";
String email = "tanxj_13@163.com"; Contact contact = new Contact(name, url, email); return new ApiInfoBuilder()
.title("API接口文档")
.description("API接口文档描述")
.termsOfServiceUrl("https://www.xx.com/")
.contact(contact)
.version("1.0.1")
.build();
}
}

这样就配置完成了,启动您的Spring Boot应用程序,并访问Knife4j的API文档界面。默认情况下,文档界面的URL为http://localhost:端口号/doc.html

3、问题处理

启动失败

启动出现这个问题:Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

解决办法:在application.yml添加以下配置

spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher

页面访问被拦截

这个一般是配置了拦截器或者SpringSecurity之类的东西把它拦截的,我这个项目中是因为我配置的拦截器拦截了,只要在过滤器中放过对应的资源就好,具体代码可以参考我另一篇博客:传送门

4、接口上使用示例

@RestController
@RequestMapping("/user")
@Api(description = "用户管理")
public class UserController { @Autowired
private UserService userService; /**
* 系统登录
* @param userAccount 账号
* @param userPassword 密码
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.GET)
@ApiOperation(value = "登录", notes = "用户登录接口")
public ResultBean login(@RequestParam("userAccount") String userAccount, @RequestParam("userPassword") String userPassword) {
log.info("系统登录,账号:{},密码:{}", userAccount, userPassword);
return userService.login(userAccount, userPassword);
}
..........................

SpringBoot整合knife4j(swagger)的更多相关文章

  1. SpringBoot整合knife4j框架(可生成离线接口文档),并设置接口请求头token默认值

    功能和swagger类似 官网地址:https://doc.xiaominfo.com/knife4j/ 这个框架可以设置返回字段的描述 引入依赖 <dependency> <gro ...

  2. SpringBoot整合knife4j

    官网说明及用法: 简介 swagger-bootstrap-ui是springfox-swagger的增强UI实现,为Java开发者在使用Swagger的时候,能拥有一份简洁.强大的接口文档体验 核心 ...

  3. Springboot中整合knife4j接口文档

    在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发. 什么是knife4j 简单说knife4j就swagge ...

  4. springboot+jpa+mysql+swagger整合

    Springboot+jpa+MySQL+swagger整合 创建一个springboot web项目 <dependencies> <dependency>      < ...

  5. SpringBoot系列十一:SpringBoot整合Restful架构(使用 RestTemplate 模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot整合Restful架构 2.背景 Spring 与 Restful 整合才是微架构的核心,虽然在整 ...

  6. SpringBoot 整合swagger

    springBoot 整合swagger 1.pom.xml 配置 <dependency> <groupId>io.springfox</groupId> < ...

  7. SpringBoot整合Swagger和Actuator

    前言 本篇文章主要介绍的是SpringBoot整合Swagger(API文档生成框架)和SpringBoot整合Actuator(项目监控)使用教程. SpringBoot整合Swagger 说明:如 ...

  8. SpringBoot整合Swagger实战

    源码地址:https://github.com/laolunsi/spring-boot-examples 目前SpringBoot常被用于开发Java Web应用,特别是前后端分离项目.为方便前后端 ...

  9. 【SpringBoot | Swagger】SpringBoot整合Swagger

    SpringBoot整合Swagger 1. 什么是Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.简单说就是项目跑起来了, ...

  10. springboot整合swagger。完爆前后端调试

    web接口开发时在调试阶段最麻烦的就是参数调试,前端需要咨询后端.后端有时候自己也不是很了解.这时候就会造成调试一次接口就需要看一次代码.Swagger帮我们解决对接的麻烦 springboot接入s ...

随机推荐

  1. MyBatis实现MySQL表字段及结构的自动增删

    前言 在开发过程中,总会涉及到数据库表结构字段的增加或者删除,或者是索引的增加和减少,这个时候能把修改表结构字段这些工作都交给程序来进行,那能大大方便开发.正好有一个现成的工具可以在springboo ...

  2. 如何简单实现suno-api账号保活

    本文由 ChatMoney团队出品 简介 之前的一个简易的项目suno-api.是使用cookie来获取suno-token发起请求的,之前写的简单,并没有做cookie保活,在运行一段时间后cook ...

  3. 关于正在开发中的DjangoStarter v3版本

    前言 最近做的这个项目大量使用了 python 及其相关的生态,因此自然而然选择了我的 DjangoStarter 作为后端框架 之前 v2 版本是用 RestFramework 做接口的,后面我试用 ...

  4. kettle从入门到精通 第六十三课 ETL之kettle kettle调用python脚本的两种方法

    kettle中不能直接调用python脚本,可以通过shell脚本和http进行调用pyton服务. 一.shell脚本调用python脚本 1.下面是一段简单的无参python脚本 import o ...

  5. bili-emoji自定义表情包设置

    使用图床上传图片.推荐使用聚合图床,简单免费 把图片的图床链接复制到一个txt文件中,如abc.txt 将abc.txt放到koishi目录的非node_modules\koishi-plugin-e ...

  6. HTML5 在泛在电力物联网的 10 大业务领域 2/3D 可视化应用

    过去的 2018 年,我们认为是国内工业互联网可视化的元年,图扑软件作为在工业可视化领域的重度参与者,一线见证了众多 HTML5/Web 化.2D/3D 化的项目在工业界应用落地. 2019 年可以定 ...

  7. requests的使用

    准备工作 安装request库 pip install request 实例引入 get方法实现GET请求,返回一个Response对象,存放在变量r中,分别输出响应的类型.状态码.响应体的类型.内容 ...

  8. git 有用配置汇总

    背景 git config的不同级别,每一个级别覆盖上一级别的配置,所以.git/config的配置变量会覆盖/etc/gitconfig中的配置变量 git config --system #为整个 ...

  9. QT学习:01 工程文件详解

    --- title: framework-cpp-qt-01-工程文件详解 EntryName: framework-cpp-qt-01-project-file date: 2020-04-08 1 ...

  10. NXP i.MX 8M Plus工业开发板硬件说明书( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

    前  言 本文主要介绍创龙科技TLIMX8MP-EVM评估板硬件接口资源以及设计注意事项等内容. 创龙科技TLIMX8MP-EVM是一款基于NXP i.MX 8M Plus的四核ARM Cortex- ...