Springboot系列文章(五):整合Swagger + Knife4j 接口文档

接口文档用于记录后台接口信息,包括请求参数、响应参数等,便于前后端开发对接和后期维护。本文介绍了如何使用Swagger和Knife4j来自动化生成接口文档,通过在项目中引入依赖,配置Swagger,添加注解来描述接口,最后通过访问特定URL查看生成的文档。在SpringBoot项目中,可能需要调整路径匹配策略以解决兼容问题。
摘要由CSDN通过智能技术生成

什么是接口文档?

写后台接口信息的文档,每条接口包括:

  • 请求参数
  • 响应参数
    • 错误码
  • 接口地址
  • 接口名称
  • 请求类型
  • 请求格式
  • 备注

比如下图:
在这里插入图片描述

为什么需要接口文档?它的作用

  • 避免口头交流,事后就忘,可以反复查阅,便于维护。
  • 便于前端和后端开发对接,便于后端调试,甚至某些开放接口开放给第三方的时候,更加方便,专业

那么应该如何做接口文档呢?

  • 手写。(语雀,md)
  • 根据代码自动生成接口文档。(Swagger,Postman)(apifox、apipost、eolink)

本期呢,我们主要讲解Swagger+ Knife4j。

Knife4j

官网地址:https://doc.xiaominfo.com/

点击实战指南,spring整合
在这里插入图片描述
接下来就是按照官方文档傻瓜式配置。

第一步:在maven项目的pom.xml中引入Knife4j的依赖包,代码如下:

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

第二步:创建Swagger配置依赖,代码如下:

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        //.title("swagger-bootstrap-ui-demo RESTful APIs")
                        .description("# swagger-bootstrap-ui-demo RESTful APIs")
                        .termsOfServiceUrl("http://www.xx.com/")
                        .contact("xx@qq.com")
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("2.X版本")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

第三步:使用注解进行接口的描述

@Api(tags = "首页模块")
@RestController
public class IndexController {

    @ApiImplicitParam(name = "name",value = "姓名",required = true)
    @ApiOperation(value = "向客人问好")
    @GetMapping("/sayHi")
    public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
        return ResponseEntity.ok("Hi:"+name);
    }
}

第四步运行。

这里我运行遇到了报错:Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException
在这里插入图片描述
需要到配置文件中配置一下

spring:
  application:
    name: yupao-backend
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER 

这是因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher。

此时,启动Spring Boot工程,在浏览器中访问:http://ip:port/doc.html

在这里插入图片描述
可以通过在 controller 方法上添加 @Api、@ApiImplicitParam(name = “name”,value = “姓名”,required = true) 等注解来自定义生成的接口描述信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前期后期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值