Springboot引入Knife4j接口文档

springboot引入Knife4j接口文档

前言:前后端联调时使用knife4j文档能大大减少沟通成本,为前端测试接口连通性以及接口参数带来很大的方便。

本文档在jdk11,springboot 2.7.17版本下编写

1. 引入依赖

<!--添加Knife4j依赖-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    <version>4.1.0</version>
</dependency>

2. 编写配置类

package com.jankin.applet.system.config;

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.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {//对于配置类要求可以看懂即可,不用反复去写,将来可以CV
    //配置Swagger2的Docket的Bean实例
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                // apiInfo():配置 API 的一些基本信息,比如:文档标题title,文档描述description,文档版本号version
                .apiInfo(apiInfo())
                // select():生成 API 文档的选择器,用于指定要生成哪些 API 文档
                .select()
                // apis():指定要生成哪个包下的 API 文档
                .apis(RequestHandlerSelectors.basePackage("com.jankin.applet.controller"))
                // paths():指定要生成哪个 URL 匹配模式下的 API 文档。这里使用 PathSelectors.any(),表示生成所有的 API 文档。
                .paths(PathSelectors.any())
                .build();
    }
    //文档信息配置
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 文档标题
                .title("Knife4j接口文档")
                // 文档描述信息
                .description("Knife4j接口文档")
                // 文档版本号
                .version("1.0")
                .build();
    }
}

3. 测试连接

访问url ip:port/doc.html 即可访问接口文档页面
在这里插入图片描述

4. 注解使用

  • @Api(tags = "01.用户管理模块")

    @Api标注在Controller类上,在页面上接口文档页面上会分类替代Controller名称

  • @ApiOperation(value="查询列表")

    @ApiOperation标注在Controller方法上,在接口文档页面会显示value内容替代方法名

  • @ApiModelProperty(value = "用户名", required = true, example = "赵丽颖")

    @ApiModelProperty标注在入参的dto变量上,value会替代具体参数名称,required会显示是否必填项,example会给出默认值

  • @ApiImplicitParam(name = "id", value = "微博", required=true, dataType = "int")

    @ApiImplicitParam标注在Controller方法上,对未封装参数进行注释,value会替代具体参数名称,required会显示是否必填项,dataType 指定参数类型

  • @ApiIgnore

    @ApiIgnore标注在Controller方法的入参上,被标注的参数表示忽略该参数,不会在接口文档中显示,例如HttpRequest参数不需要显示。

5. 配置移除接口文档

在生产环境肯定不允许接口文档的出现,如果每次打包生产时都移除依赖删除配置文件太麻烦,Knife4j提供配置方式,在配置文件application.yml中添加配置

knife4j:
  enable: true
  production: true

此时在打包时,配置以上配置即可不显示接口文档。

当然如果配置文件分dev和pro版本,则直接在pro中配置即可。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
springboot引入knife4j的步骤如下所示: 1. 在项目的pom.xml文件中添加knife4j的依赖。如果使用maven,可以添加以下依赖: ```xml <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.0.0</version> </dependency> ``` 如果使用gradle,可以添加以下依赖: ```groovy implementation "com.github.xiaoymin:knife4j-spring-boot-starter:4.0.0" ``` 2. 编写项目的配置文件,配置knife4j相关的信息。在Spring Boot的配置文件中,可以添加以下内容: ```yaml spring: mvc: pathmatch: matching-strategy: ant_path_matcher knife4j: enable: true title: service01 description: service01描述 contact: name: 军大的springcloud项目 url: https://www.XXXXXXX.XX email: 129214888888@qq.com cors: true basic: enable: true username: admin password: admin ``` 3. 在需要生成API文档的接口上添加相关注解。使用knife4j提供的注解可以对接口进行标记,例如: ```java @Api(tags = "用户管理模块") @RestController @RequestMapping("/user") public class UserController { @ApiOperation("获取用户信息") @GetMapping("/{id}") public User getUser(@PathVariable Long id) { // 获取用户信息的逻辑 } } ``` 以上就是springboot引入knife4j的简要步骤,通过这些步骤可以轻松地集成knife4jspringboot项目中,并生成API文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot 引入 knife4j](https://blog.csdn.net/weixin_42581660/article/details/129383029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [spring boot整合Knife4j](https://blog.csdn.net/a1k2l45k/article/details/128284087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Spring Boot引入swagger-ui 后swagger-ui.html无法访问404的问题](https://download.csdn.net/download/weixin_38659805/12820874)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值