锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. JAVA
  4. Java实战:Spring Boot集成Swagger3

Java实战:Spring Boot集成Swagger3

0
  • JAVA
  • 发布于 2024-08-13
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

本文将详细介绍如何在 Spring Boot 应用程序中集成 Swagger3,以构建现代化的 RESTful API 文档。我们将探讨 Swagger3 的基本概念,以及如何使用 Spring Boot 和 Swagger3 库来实现 API 文档。此外,我们将通过具体的示例来展示如何在 Spring Boot 中配置和使用 Swagger3。本文适合希望使用 Swagger3 为 Spring Boot 应用程序生成 API 文档的开发者阅读。

一、引言

在现代 Web 开发中,RESTful API 文档是一个重要的组成部分。Swagger 是一个流行的 API 框架,用于构建、描述、消费 RESTful 服务。Swagger3 是 Swagger 的下一代,它提供了更简洁、更强大的功能,以满足现代 API 的需求。Spring Boot 提供了对 Swagger3 的直接支持,使得集成和使用 Swagger3 变得非常简单。

二、Swagger3 的基本概念

1. 什么是 Swagger3?
Swagger3 是一个用于构建、描述、消费 RESTful 服务的框架。它提供了一套完整的工具,用于生成 API 文档、自动生成客户端 SDK、进行 API 测试等。Swagger3 支持 OpenAPI 3.0 规范,使得 API 文档更加丰富和交互式。
2. Swagger3 的特点

  • 现代化:Swagger3 提供了更加简洁、现代的 API 文档界面。
  • 交互式:Swagger3 支持交互式 API 测试,用户可以在线发送请求和查看响应。
  • 可扩展性:Swagger3 支持多种插件和扩展,以满足不同的需求。
  • 社区支持:Swagger3 拥有一个庞大的社区,提供了丰富的资源和工具。

三、在 Spring Boot 中集成 Swagger3

1. 添加 Swagger3 依赖
在项目的 pom.xml 文件中,添加 Spring Boot 的 Swagger3 依赖:

<dependencies>
    <!-- Spring Boot Web依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring Boot OpenAPI依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-openapi</artifactId>
        <version>3.0.0</version>
    </dependency>
</dependencies>

2. 配置 Swagger3
Spring Boot 会自动配置 Swagger3,但我们可以通过在 application.properties 或 application.yml 文件中添加一些属性来定制 Swagger3 的行为。例如:

# application.properties
spring.mvc.static-path-pattern=/static/**

3. 创建 Swagger3 配置类
虽然 Spring Boot 会自动配置 Swagger3,但我们也可以通过创建一个 Swagger3 配置类来进一步定制 Swagger3 的行为。以下是一个简单的 Swagger3 配置类示例:

package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
@EnableOpenApi
public class SwaggerConfig {
    @Bean
    public Docket apiDocket() {
        return new Docket(DocumentationType.OAS_30)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

在上面的代码中,我们创建了一个 Docket Bean,用于配置 Swagger3 的文档类型为 OAS 3.0,并选择 com.example.demo.controller 包下的 API 进行文档生成。
4. 创建 Controller 类
在 Spring Boot 项目中创建一个 Controller 类,用于提供 RESTful API。以下是一个简单的 Controller 类示例:

package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SampleController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

5. 运行项目
将以上代码添加到我们的 Spring Boot 项目中,并运行项目。我们可以通过浏览器或 Postman 等工具访问http://localhost:8080/swagger-ui/,观察 Swagger3 UI 界面的渲染效果。

四、Swagger3 的高级用法

1. 添加 API 信息
Swagger3 允许您添加 API 信息,如标题、描述、版本等。我们可以在 Swagger3 配置类中添加以下代码来设置 API 信息:

@Bean
public Docket apiDocket() {
    return new Docket(DocumentationType.OAS_30)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
            .paths(PathSelectors.any())
            .build()
            .apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
            .title("Spring Boot + Swagger3 API Documentation")
            .description("This is the API documentation for the Spring Boot application.")
            .version("1.0.0")
            .build();
}

2. 添加分组
Swagger3 支持为 API 文档添加分组,以便更好地组织和管理 API。我们可以在 Swagger3 配置类中添加以下代码来设置分组:

@Bean
public Docket apiDocket() {
    return new Docket(DocumentationType.OAS_30)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
            .paths(PathSelectors.any())
            .groupName("sample-group")
            .build()
            .apiInfo(apiInfo());
}

3. 添加响应示例
Swagger3 允许您为 API 响应添加示例,以便用户更好地理解 API 的返回值。我们可以在 Swagger3 配置类中添加以下代码来设置响应示例:

@Bean
public Docket apiDocket() {
    return new Docket(DocumentationType.OAS_30)
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
            .paths(PathSelectors.any())
            .build()
            .apiInfo(apiInfo())
            .globalResponses(HttpMethod.GET, responseListBuilder -> responseListBuilder
                    .addResponse(HttpStatus.OK.value(), "success", new ObjectMapper().writeValueAsString(new SampleResponse())));
}
private class SampleResponse {
    private String status;
    private String message;
    // getter和setter方法
}

五、总结

本文详细介绍了如何在 Spring Boot 应用程序中集成 Swagger3,以构建现代化的 RESTful API 文档。我们首先了解了 Swagger3 的基本概念和特点。然后,我们学习了如何使用 Spring Boot 和 Swagger3 库来实现 API 文档,并通过具体的示例展示了如何在 Spring Boot 中配置和使用 Swagger3。
通过本文,我们应该已经掌握了如何在 Spring Boot 中集成和使用 Swagger3 来生成 API 文档。我们学会了如何配置 Swagger3,如何为 API 添加信息、分组和响应示例。希望本文能够帮助您在开发 Spring Boot 应用程序时更加得心应手。如果您有任何疑问或建议,请随时留言交流。

标签: #JAVA 991
相关文章

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

SpringBoot整合异步任务执行 2024-10-08 11:24

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等 并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用 户体验 异步任务: 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源

springboot kafka多数据源,通过配置动态加载发送者和消费者 2024-10-08 11:24

前言 最近做项目,需要支持kafka多数据源,实际上我们也可以通过代码固定写死多套kafka集群逻辑,但是如果需要不修改代码扩展呢,因为kafka本身不处理额外逻辑,只是起到削峰,和数据的传递,那么就需要对架构做一定的设计了。 准备test kafka本身非常容易上手,如果我们需要单元测试,引入ja

SpringBoot 集成 Redis 2024-10-08 11:24

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客户端可以使用多种语

SpringBoot整合QQ邮箱 2024-10-08 11:24

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件…. 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.