SpringBoot集成knife4j

1、什么是Knife4j

在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比Swagger更好看,功能更丰富

早期,swagger-boostrap-ui是1.x版本,如今swagger-bootsrap-ui到2.x,同时也更改名字Knife4j,适用于单体和微服务项目。

Knife4j官方网站

2、SpringBoor整合Knife4j

2.1、Knife4j配置方式1

1、引入Knife4j相关依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.8</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

2、创建Knife4J配置类

package com.heima.common.swagger;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Configuration {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //分组名称
                .groupName("1.0")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.heima"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("黑马头条API文档")
                .description("黑马头条API文档")
                .version("1.0")
                .build();
    }
}

3、把配置的bean注入spring
在这里插入图片描述

2.2 配置方式二

1、引入Knife4j相关依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.8</version>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

2、写配置
在这里插入图片描述
在application.yml文件中配置

knife4j:
  enable: true
  openapi:
    title: 用户管理接口文档
    description: "用户管理接口文档"
    email: zhanghuyi@itcast.cn
    concat: 虎哥
    url: https://www.itcast.cn
    version: v1.0.0
    group:
      default:
        group-name: default
        api-rule: package
        api-rule-resources:
          - com.itheima.mp.controller

2.3、写注解

package com.heima.user.controller.v1;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.user.dtos.LoginDto;
import com.heima.user.service.ApUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1/login")
@Api(value = "app端用户登录",tags = "app端用户登录")
public class ApUserLoginController {

    @Autowired
    private ApUserService apUserService;

    @PostMapping("/login_auth")
    @ApiOperation("用户登录")
    public ResponseResult login(@RequestBody LoginDto dto){
        return apUserService.login(dto);
    }
}

2.4、效果

此时运行项目,访问 IP+端口/doc.html

在这里插入图片描述

相关推荐

  1. SpringBoot集成knife4j

    2024-04-02 19:02:03       33 阅读
  2. Springboot3 集成knife4j(swagger)

    2024-04-02 19:02:03       15 阅读
  3. SpringBoot教程(十九) | SpringBoot集成knife4j

    2024-04-02 19:02:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 19:02:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 19:02:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 19:02:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 19:02:03       20 阅读

热门阅读

  1. 每日一题: 为什么要使用Spring?

    2024-04-02 19:02:03       14 阅读
  2. 【数据库】[MYSQL][面试题]常见数据库知识整理

    2024-04-02 19:02:03       15 阅读
  3. C++ map 常用部分

    2024-04-02 19:02:03       14 阅读
  4. 【zml】vp9 vp8

    2024-04-02 19:02:03       11 阅读
  5. 简单的HTML

    2024-04-02 19:02:03       13 阅读
  6. 东方财富网股票数据爬虫

    2024-04-02 19:02:03       13 阅读
  7. Windows 11 中Docker的安装教程

    2024-04-02 19:02:03       18 阅读
  8. terraform读取tfvars的变量

    2024-04-02 19:02:03       14 阅读
  9. MATLAB如何批量更改文件名

    2024-04-02 19:02:03       14 阅读
  10. 人工智能的实现流程

    2024-04-02 19:02:03       15 阅读