SpringBoot整合Swagger,让开发更遍历

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

在这里插入图片描述

SpringBoot整合Swagger,让开发更遍历


👇


Swagger介绍

Swagger 是一种流行的开源工具集,用于设计、构建、记录和使用 RESTful Web 服务的 API( https://swagger.io/ )。它包含了一系列工具,可以帮助开发人员在开发 API 时更加高效地进行设计、测试和文档编写。下面是 Swagger 的一些主要功能和组件:

  1. API 文档自动生成: Swagger 可以根据代码中的注解自动生成 API 文档。开发人员只需要在代码中添加一些特定的注解,描述 API 的路径、参数、响应等信息,Swagger 就可以自动扫描代码并生成相应的 API 文档。
  2. 可视化 API 文档: Swagger 生成的 API 文档以可视化的形式呈现,包括 API 的路径、HTTP 方法、参数、响应等信息,使开发人员可以清晰地了解 API 的使用方式和接口规范。
  3. 交互式 API 测试工具: Swagger UI 是 Swagger 提供的一个交互式 API 测试工具,可以让开发人员直接在浏览器中测试 API,无需使用额外的工具或插件。通过 Swagger UI,开发人员可以输入参数、发送请求,并查看实际的响应结果,从而快速验证 API 的正确性和可用性。
  4. API 文档的版本控制: Swagger 支持多版本的 API 文档管理,开发人员可以为不同版本的 API 编写不同的文档,并通过 Swagger UI 来方便地切换和查看不同版本的 API。
  5. 集成开发环境支持: Swagger 可以集成到各种常见的集成开发环境(IDE)中,如 Eclipse、IntelliJ IDEA 等,提供了便捷的 API 设计和文档编写功能。
  6. 与多种编程语言和框架的兼容性: Swagger 不仅支持 Java,还支持多种其他编程语言和框架,如 Python、Node.js、Ruby 等,开发人员可以在不同的项目中使用 Swagger 来进行 API 的设计和文档编写。

综合来说,Swagger 提供了一套完整的工具集,帮助开发人员更加高效地设计、构建和文档化 RESTful API,提升了团队协作效率,降低了开发成本,同时也提升了 API 的可读性和可维护性。




SpringBoot整合swagger

1 引入Maven坐标

Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
</dependency>



2 创建一个Swagger配置类

SwaggerConfiguration.java

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;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author .29.
 * @create 2024-05-13 10:43
 */
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket buildDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInfo())
                .select()
                // 要扫描的API(Controller)基础包
                .apis(RequestHandlerSelectors.basePackage("com.heima"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInfo() {
        Contact contact = new Contact(".29.","","");
        return new ApiInfoBuilder()
                .title(".29.仿今日头条-平台管理API文档")
                .description(".29.仿今日头条后台api")
                .contact(contact)
                .version("1.0.0").build();
    }
}

让我解释一下这段代码的主要内容:

  1. @Configuration:这个注解表明这是一个配置类,它会在 Spring 应用程序启动时被加载。
  2. @EnableSwagger2:这个注解用于启用 Swagger2 的支持。
  3. @Bean:这个注解表明 buildDocket() 方法将会产生一个 Spring Bean,并将其加入到 Spring 容器中。
  4. buildDocket() 方法:这个方法创建并配置了一个 Docket 对象,用于配置 Swagger 的基本信息和扫描规则。具体来说:
    • 使用 DocumentationType.SWAGGER_2 指定了 Swagger 的文档类型为 Swagger 2.0。
    • 使用 apiInfo(buildApiInfo()) 方法设置 API 文档的基本信息,包括标题、描述、联系人信息和版本号。
    • 使用 select() 方法开始配置 API 选择器,通过 apis(RequestHandlerSelectors.basePackage("com.heima")) 指定了要扫描的 API(Controller) 的基础包路径为 “com.heima”。
    • 使用 paths(PathSelectors.any()) 方法指定了所有路径都应该被包含在 API 文档中。
    • 最后使用 build() 方法来构建 Docket 对象。
  5. buildApiInfo() 方法:这个方法创建并配置了 ApiInfo 对象,用于设置 API 文档的基本信息。具体来说:
    • 创建了一个 Contact 对象,用于设置联系人信息。
    • 使用 ApiInfoBuilder 构建器设置了 API 文档的标题、描述、联系人信息和版本号。
    • 最后使用 build() 方法构建 ApiInfo 对象。

这段代码配置了 Swagger 生成 API 文档的基本信息,并指定了扫描哪些包中的 Controller 类来生成 API 文档。



3 设置Swagger相关功能的自动配置

resources目录下新增文件:resources/META-INF/Spring.factories

在这里插入图片描述

# Spring自动配置相关参数(参数通常是一个以逗号分隔的类名列表,每个类名表示一个自动配置类。)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.heima.common.swagger.SwaggerConfiguration

在Java类中添加Swagger的注解即可生成Swagger接口文档

访问Swagger文档:http://{你的IP}:{你的项目服务端口}/swagger-ui.html

http://localhost:51801/swagger-ui.html

在这里插入图片描述



Swagger常用注解介绍

@Api:修饰整个类,描述Controller的作用

@ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数的描述信息

@ApiModel:用对象来接收参数

@ApiModelProperty:用对象接收参数时,描述对象的一个字段

@ApiResponse:HTTP响应其中1个描述

@ApiResponses:HTTP响应整体描述

@ApiIgnore:使用该注解忽略这个API

@ApiError :发生错误返回的信息

@ApiImplicitParam:一个请求参数

@ApiImplicitParams:多个请求参数的描述信息


@ApiImplicitParam属性:

属性取值作用
paramType查询参数类型
path以地址的形式提交数据
query直接跟参数完成自动映射赋值
body以流的形式提交 仅支持POST
header参数在request headers 里边提交
form以form表单的形式提交 仅支持POST
dataType参数的数据类型 只作为标志说明,并没有实际验证
Long
String
name接收参数名
value接收参数的意义描述
required参数是否必填
true必填
false非必填
defaultValue默认值





在这里插入图片描述

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
要实现springboot整合swagger2 3.0.0版本,你需要按照以下步骤操作: 1. 创建一个maven项目并引入spring-boot-starter-web和springfox-boot-starter依赖。在pom.xml文件中添加以下代码: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- <version>2.5.6</version> --> <!-- <version>2.6.3</version> --> <!-- <version>2.6.5</version> --> <version>2.7.3</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.26</version> </dependency> ``` 2. 在application.yml配置文件中添加以下内容: ```yaml spring: mvc: pathmatch: matching-strategy: ant_path_matcher ``` 3. 创建启动类,并在其中添加`@EnableSwagger2`注解。例如: ```java @SpringBootApplication @EnableSwagger2 public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` 这样就完成了springboot整合swagger2 3.0.0版本的配置。你可以根据需要在项目中编写相应的接口文档注解以及其他相关配置。如果需要详细的操作步骤和示例代码,你可以参考中提供的链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Springboot整合Swagger2(3.0.0版本)](https://blog.csdn.net/mo_sss/article/details/130820204)[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: 50%"] - *3* [Springboot整合Swagger UI 3.0.0 版本](https://blog.csdn.net/qq_42102911/article/details/126410050)[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: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.29.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值