Springboot整合knife4j配置swagger教程-干货

788 阅读3分钟

Springboot整合swagger文档

开启swagger文档,直接上教程。

✅第一步:引入依赖

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

✅第二步:添加配置文件

package com.test.empback.config;


import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * @author: 公众号:知识浅谈 个人微信:CYF2918CYF
 * Package:  com.test.empback.config
 * @date: 2023/9/3 15:40
 * @Description: swagger配置
 * @version: 1.0
 */
@Configuration
@EnableKnife4j
public class Knife4jConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.test.empback<这个地方改成你的包名>"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Springboot项目 后台服务API接口文档")
                .description("使用 knife4j 搭建的后台服务API接口文档")
                .contact(new Contact("你的姓名","你的网站","你的邮箱"))
                .version("1.0.0")
                .build();
    }
}

✅第三步:弄一个controller试试

@Api("公告相关控制器")
@RequestMapping("/")
public class TestController {
	@GetMapping("/test")
    public Result get(){
		return "test";
	}
}

然后运行项目: 打开网址 http://localhost:你设置的端口,没有设置默认为8080/api/doc.html

我的设置的8081,所以我就访问http://localhost:8081/api/doc.html

✅Swagger理论知识补充

💧什么是Swagger?

Swagger是一个用于设计、构建和文档化标准的RESTful Web服务的工具。它最初是由SmartBear Software开发的开源项目,旨在帮助开发人员更轻松地理解和使用基于HTTP的RESTful API。

Swagger 提供了一组工具,包括:

  1. Swagger Editor:一个用于编写 OpenAPI 规范(以前称为 Swagger 规范)的交互式编辑器,可以帮助开发人员定义和描述他们的 RESTful API。
  2. Swagger UI:一个动态生成的API文档界面,可根据OpenAPI规范自动生成API的交互式文档,使开发人员和其他利益相关者能够直观地浏览API的功能和用法。
  3. Swagger Codegen:一个用于生成客户端库、server stubs和API文档的工具,可以根据OpenAPI规范自动生成各种编程语言的API客户端代码和服务端桩代码。
  4. OpenAPI Specification:这是Swagger的核心,它定义了一种标准的API描述格式,允许开发人员使用JSON或YAML格式来描述API的各种方面,包括端点、参数、响应等。

💧knife4j 和 swagger之间的关系

Knife4j是基于Swagger的增强UI界面框架,它是Swagger的一个扩展和增强版本。Knife4j提供了更加美观、易用和功能丰富的UI界面,使得开发者可以更方便地查看和测试API文档。

具体来说,Knife4j在Swagger的基础上进行了以下改进和扩展:

  1. 界面优化:Knife4j提供了更加美观、直观的界面设计,使得API文档更易读、易用,并提供了一些额外的交互体验,如接口模块的折叠展开、请求参数的示例值自动填充等。
  2. 接口分类与分组:Knife4j支持对API接口进行分类和分组,开发者可以根据实际需要将接口按照模块、业务等进行分组,便于更好地组织和管理接口文档。
  3. 代码生成:Knife4j提供了在线代码生成工具,可以根据API文档自动生成前端和后端的代码,减少了手动编写代码的工作量。
  4. 接口测试:Knife4j集成了Swagger提供的接口测试功能,开发者可以直接在界面中进行接口测试,不需要额外的工具或插件。

综上所述,Knife4j是在Swagger基础上进行了增强和扩展的工具,提供了更好的UI界面和额外的功能,使得API文档更易于使用和管理。开发者可以根据实际需求选择使用Swagger或Knife4j来设计、构建和文档化他们的RESTful API。

🍚总结

大功告成,撒花致谢🎆🎇🌟,关注我不迷路,带你起飞带你富。