简介:

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

        它提供了一套美观,功能强大的界面,可以帮助开发者快速浏览、测试和理解后端API接口。 

   主要功能:

  • 自动配置:自动配置Knife4j所需的所有bean。
  • 默认设置:提供合理的默认配置,例如访问路径(通常是/doc.html)。
  • UI增强:提供比原生Swagger UI更加美观和用户友好的界面。
  • Markdown支持:允许你在API文档中使用Markdown语法来编写描述。
  • 国际化支持:支持多语言切换。
  • 增强的安全性:可以配置安全认证以保护API文档不被未授权访问。

操作步骤:

   环境说明:

  •  jdk: 1.8
  •  springboot : 2.6.2       
  •  knife4j: 3.0.3   

        第一步:引入依赖

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

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

第二步:配置文件(很重要!!!) 

spring:
  #不加这个访问地址会报404
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

knife4j:
  # 启动knife4j(注:有时,如果我们不进行此配置,knife4j不会开启)
  enable: true

 第三步:配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;


@Configuration
@EnableSwagger2
public class Knife4jConfiguration {        

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("knife4j测试")
                        .description("# swagger-bootstrap-ui-demo RESTful APIs")
                        .termsOfServiceUrl("http://www.xx.com/")
                        .contact(new Contact("除了代码啥都不会", "", "123@qq.com"))
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("2.X版本")
                .select()
                //这里指定文档Controller层扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.example.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;

    }
}

 第四步:给请求参数和方法都加上注解

    常用注解:

  1. @Api:用于描述整个接口文档的基本信息,可以用在类或接口上。

  2. @ApiOperation:用于描述单个接口的操作信息,包括接口的名称、描述、请求方法等。可以用在方法上。

  3. @ApiImplicitParam:用于描述接口的请求参数信息,包括参数的名称、类型、是否必填等。

  4. @ApiImplicitParams:用于描述接口的多个请求参数,可包含多个@ApiImplicitParam注解。

  5. @ApiModel:用于描述数据模型,可用在DTO(Data Transfer Object)类上,表明该类是一个数据模型。

  6. @ApiModelProperty:用于描述数据模型的属性信息,包括属性的名称、类型、描述等。

示例:

        控制层

       

        实体类

          

第五步:启动项目并访问 http://{ip}:{端口}/doc.html 即可!

        

         

       测试一下,没问题,拿去用吧!

        

                

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐