如何在SptingBoot项目中引入swagger生成API文档

目录

背景介绍,swagger的必要性

swagger的引入:

[1.首先我们需要在 pom.xml文件中导入jar包](#1.首先我们需要在 pom.xml文件中导入jar包)

2.给swagger创建一个配置类:

3.为实体类添加注解

4.为controller添加注解


背景介绍,swagger的必要性

自从在2005年前端工程师诞生之后,随着js技术的进步和人们对网页的需求越来越高,全栈式程序员逐渐满足不了需求,所以前后端分离就被人提了出来。

然而,前后端分离虽然相比于全栈式减轻了程序员的负担但也产生了一个新的问题:前后端的交流问题。

因为我们知道,前端和后端是高度依赖的,在前端和后端进行数据传输的时候经常会因为一些命名问题导致报错,全栈式程序员会遇到这个问题更何况前后端分离。所以命名的规范以及前后端程序员的沟通就显得非常重要。

在这个过程中,需要我们后端程序员来给前端提交一个API文档。上面介绍着我们的那些方法,以及实体类中的变量名称,这是一个非常麻烦的问题,那么,有没有一个组件能帮助我们后端程序员自动生成这个API文档呢?

也就我们的主角登场:swagger

swagger可以帮助我们在创建实体类的时候就创建这个API仅仅只需要一些注解标签。

swagger的引入:

1.首先我们需要在 pom.xml文件中导入jar包

复制代码
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>

2.给swagger创建一个配置类:

复制代码
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {

    @Bean(value = "dockerBean")
    public Docket dockerBean() {
        //指定使用Swagger2规范
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        //描述字段支持Markdown语法
                        .description("# Knife4j RESTful APIs")
                        .termsOfServiceUrl("https://doc.xiaominfo.com/")
                        .contact("xiaoymin@foxmail.com")
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("用户服务")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.ffyc.news.web"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

3.为实体类添加注解

4.为controller添加注解

最后我们需要前段的访问地址:

http://ip:端口/doc.html

相关推荐
longxiaozhang67 分钟前
C# Array类:数组其实没那么难
开发语言·c#
码匠许师傅17 分钟前
【C++ 面试真题】27. 聊聊 C++ 的内存泄漏与内存布局
java·c++·面试
互联网中的一颗神经元1 小时前
06. Small 对象分配:mcache 无锁路径
开发语言·golang
PPPPickup1 小时前
金证秋招笔试
java·开发语言
不正经学生1 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
ycjunhua1 小时前
Spring AI 2.0 GA:ToolCallingAdvisor 重构与 Java Agent 新范式
java·人工智能·spring
老一岁1 小时前
c问题总结(1)
c语言·开发语言
开源必胜1 小时前
Future的异常处理以及CompletableFuture传播链、异常处理
java
林森lsjs2 小时前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
何以解忧,唯有..3 小时前
Python time 模块详解:时间处理与日期操作指南
开发语言·python