SpringBoot整合knife4j

SpringBoot整合knife4j

一、什么是knife4j

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

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

Knife4j官方网站:https://doc.xiaominfo.com/

二、整合knife4j

2.1 Knife4j配置

  1. 引入Knife4j相关依赖

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
                <version>4.4.0</version>
            </dependency>
    
  2. 配置文件

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/e-mart?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: root
        password: root
    # springdoc-openapi项目配置
    springdoc:
      swagger-ui:
        path: /swagger-ui.html
        tags-sorter: alpha
        operations-sorter: alpha
      api-docs:
        path: /v3/api-docs
      group-configs:
        - group: 'default'
          paths-to-match: '/**'
          packages-to-scan: com.bailuo.swagger.controller
    # knife4j的增强配置,不需要增强可以不配
    knife4j:
      enable: true
      setting:
        language: zh_cn
    
  3. 实体类

    package com.bailuo.swagger.entity;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class User {
    
      private long id;
      private String loginName;
      private String userName;
      private String password;
      private long sex;
      private String identityCode;
      private String email;
      private String mobile;
      private long type;
    }
    
    
  4. 创建mapper

    package com.bailuo.swagger.mapper;
    
    import com.bailuo.swagger.entity.User;
    
    import java.util.List;
    
    public interface UserMapper {
        List<User> selectUserList();
        int insertUser(User user);
        int updateUser(User user);
        User selectUser(int userId);
        int deleteUser(int userId);
    }
    
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.bailuo.swagger.mapper.UserMapper">
        <insert id="insertUser">
            insert into easybuy_user(mobile,loginName,userName,sex,identityCode,email,type,password)
            values(#{mobile},#{loginName},#{userName},#{sex},#{identityCode},#{email},#{type},#{password})
        </insert>
        <update id="updateUser">
            update easybuy_user set mobile=#{mobile},loginName=#{loginName},userName=#{userName},sex=#{sex},identityCode=#{identityCode},email=#{email},type=#{type},password=#{password} where id=#{id}
        </update>
        <delete id="deleteUser">
            delete from easybuy_user where id=#{userId}
        </delete>
    
        <select id="selectUserList" resultType="com.bailuo.swagger.entity.User">
            select * from easybuy_user
        </select>
        <select id="selectUser" resultType="com.bailuo.swagger.entity.User">
            select * from easybuy_user where id=#{userId}
        </select>
    </mapper>
    
  5. 创建controller

    package com.bailuo.swagger.controller;
    
    
    import com.bailuo.swagger.entity.User;
    import com.bailuo.swagger.service.UserService;
    import com.bailuo.swagger.vo.ResultData;
    import io.swagger.v3.oas.annotations.Operation;
    import io.swagger.v3.oas.annotations.tags.Tag;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    
    @RestController
    @RequestMapping("/user")
    @Tag(name = "用户管理接口")
    public class UserController {
        @Autowired
        UserService userService;
        @Operation(summary = "查询所有用户")
        @GetMapping("/")
        public ResultData<List<User>> list(){
            List<User> users = userService.selectUserList();
            return ResultData.success(users);
        }
        @Operation(summary = "修改用户")
        @PutMapping("/")
        public ResultData<Integer> update(@RequestBody User user){
            int resultUpdate = userService.updateUser(user);
            return ResultData.success(resultUpdate);
        }
        @Operation(summary = "查询指定用户")
        @GetMapping("/{id}")
        public ResultData<User> selectById(@PathVariable("id") int id){
            User user = userService.selectUser(id);
            return ResultData.success(user);
        }
        @Operation(summary = "添加用户")
        @PostMapping("/")
        public ResultData<Integer> list(@RequestBody User user){
            int insertResult = userService.insertUser(user);
            return ResultData.success(insertResult);
        }
    }
    
    

2.2 效果

此时运行项目,访问 IP+端口/doc.html
例如:http://127.0.0.1:8080/doc.html
在这里插入图片描述

相关推荐

  1. Springboot整合Knife4j接口文档

    2024-04-24 03:56:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

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

    2024-04-24 03:56:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-24 03:56:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-24 03:56:01       18 阅读

热门阅读

  1. leveldb 键值数据库

    2024-04-24 03:56:01       15 阅读
  2. Spring源码中的简单工厂模式

    2024-04-24 03:56:01       14 阅读
  3. 【无标题】

    2024-04-24 03:56:01       14 阅读
  4. ionic 中对Input输入框、select下拉框进行solr检索

    2024-04-24 03:56:01       13 阅读
  5. C++ day1

    C++ day1

    2024-04-24 03:56:01      12 阅读
  6. LeetCode-11-盛最多水的容器

    2024-04-24 03:56:01       14 阅读
  7. npm——基本使用

    2024-04-24 03:56:01       13 阅读
  8. CUDA_cudaFree_释放Stream_cudaError_t 错误类型码解释

    2024-04-24 03:56:01       14 阅读
  9. 算法训练营day21

    2024-04-24 03:56:01       11 阅读
  10. springCloud是什么,怎么创建

    2024-04-24 03:56:01       13 阅读
  11. 数据安全:口令

    2024-04-24 03:56:01       12 阅读