Knife4j 一款基于Swagger的开源文档管理工具

一、简单介绍

1.1 简介

  • Knife4j 是一款基于Swagger的开源文档管理工具,主要用于生成和管理 API 文档

二、使用步骤:

2.1 添加依赖:

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

2.2 yml数据源配置

复制代码
spring:
  mvc:
    pathmatch: # Springfox使用的路径匹配是基于AntPathMatcher的
      # 所以需要配置此参数
      matching-strategy: ant_path_matcher

2.3 创建knife4j配置类

复制代码
package com.example.knife4.config;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration // 开启配置
@EnableSwagger2 // 启动Swagger2
public class Knife4jConfiguration {

    @Bean
    public Docket defaultApi2() {
        String groupName = "1.0版本";
        Docket docket = new Docket(DocumentationType.OAS_30)
                // 是否启用Swagger,true启用,false不启用
                .enable(true)
                .apiInfo(new ApiInfoBuilder()
                        .title("这是LiCoffee-Test-knife4j API ")
                        .description("这是项目描述")
                        .termsOfServiceUrl("服务器URL")
                        .contact(new Contact("LiCoffee", null, "[email protected]"))
                        .version("1.0")
                        .build())
                //分组名称
                .groupName(groupName)
                .select()
                // 这里指定Controller扫描包路径,没有加注解的接口方法也会生成接口文档
                .apis(RequestHandlerSelectors.basePackage("com.example.knife4.controller"))

                // 这里指定只有加了注解的才会生成接口文档
                //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

以上就配置完了,还有一些小细节下在讲,通过访问http://127.0.0.1:8080/doc.html#/home

相关推荐
都叫我大帅哥几秒前
Spring Batch中的JobRepository:批处理的“记忆大师”是如何工作的?🧠
java·spring
三好码农10 分钟前
深入Android 15 Zygote:ZygoteServer如何驾驭进程孵化
java·设计模式·架构
叶 落1 小时前
三种语言写 MCP
java·python·ai·typescript·mcp
桃子是唯一的水果2 小时前
spring碎片
java·spring
LUCIAZZZ2 小时前
项目拓展-Spring实现策略类统一管理
java·jvm·spring boot·后端·spring·操作系统
zhendeWD2 小时前
springboot 提供的可扩展接口
java·spring boot·后端·spring
PHASELESS4112 小时前
深入理解Spring MVC:构建灵活Web应用的基石
java·网络·后端·spring·mvc
Byte Beat2 小时前
springCloudAlibaba最新版本2023.0.3.2 与nacos3.0的连接不上问题记录
java·spring cloud·nacos
528303 小时前
容器技术入门与Docker环境部署
java·docker·容器
Xiaouuuuua7 小时前
我开源了一套springboot3快速开发模板
java·开发语言·开源