SpringBoot 3.2.5 引入Swagger(OpenApi)

news/2024/9/23 11:55:35/

SpringBoot 3.2.5 引入Swagger(OpenApi)

  • pom文件
  • 配置文件
  • 启动类
  • Controller 层
  • ApiFox
        • 题外话

springdoc-openapi 和 swagger 都可以用,用其中一个就行,不用两个都引入。

这里简单记录以下springdoc-openapi。

springdoc-openapi(Java库)有助于使用 SpringBoot 项目 自动生成 API 文档。

pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.5</version><relativePath/></parent><!-- 当前项目id --><groupId>openApi</groupId><artifactId>openApi</artifactId><version>3.2.5</version><name>openApi</name><description>这里写你自己的项目描述</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>17</java.version></properties><dependencies><!-- SpringBoot 提供的 web 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>3.2.5</version></dependency><!-- lombok 依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version></dependency><!-- validation 参数校验依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId><version>3.2.5</version></dependency><dependency><groupId>jakarta.validation</groupId><artifactId>jakarta.validation-api</artifactId><version>3.0.2</version></dependency><!-- swagger-ui依赖 https://springdoc.org/ --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.5.0</version></dependency></dependencies>
</project>

配置文件

import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;//也有其他的扩展,有兴趣的可自行翻阅官网
@Configuration
public class SpringDocConfig {//个人认为,以下括号里的内容,都可乱写,写啥都行,只要是字符串就行@Beanpublic OpenAPI springShopOpenAPI() {return new OpenAPI().info(new Info().title("OpenApi的Swagger").description("springdoc-openapi-starter-webmvc-ui").version("springdoc-openapi v2.5.0").license(new License().name("SprigBoot3.2.5")//url,这里写的是SpringBoot的地址.url("https://spring.io/projects/spring-boot"))).externalDocs(new ExternalDocumentation().description("springdoc-openapi v2.5.0")//url,写的是springdoc-openapi的地址.url("https://springdoc.org/#google_vignette"));}
}

启动类

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@Slf4j
@SpringBootApplication
public class BigEventApplication implements CommandLineRunner {public static void main(String[] args) {SpringApplication.run(BigEventApplication.class, args);}@Overridepublic void run(String... args) {//端口号默认8080log.info("Tomcat在端口 " + 8080 + " (http)上启动:\n");String hostname = "localhost";String http = "http://";log.info("Api文档 浏览器访问地址如下:");log.info(http + hostname + ":" + 8080 + "/swagger-ui/index.html\n");log.info("ApiFox的 URL方式 导入路径为:");log.info(http + hostname + ":" + 8080 + "/v3/api-docs\n");}
}

Controller 层

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;import java.util.List;@Validated
@RestController
@RequiredArgsConstructor
@Tag(name = "Xxx名字", description = "这里可以多写几个字,用来描述xxx,描述的详细一点")
@RequestMapping("/路径")
public class XxxController {private final XxxService service;@Operation(summary = "删除", description = "根据 id 删除")@DeleteMapping("/delete/{id}")public Result<String> clean(@NotBlank(message = "id 不可为空") @PathVariable String id) {boolean b = service.removeById(id);return b ? Result.success("删除成功") : Result.error("删除失败");}
}

启动成功后,可以直接从控制台点击这俩访问地址
http://localhost:8080/swagger-ui/index.html
http://localhost:8080/v3/api-docs
在这里插入图片描述

ApiFox

我用的接口测试工具是Apifox
把导入地址复制进去,就可以测试接口了
在这里插入图片描述

题外话
  • 你没钱,别人对你的态度,基本都是真诚的:说教、训斥、排挤……都是真的,因为他们找到了存在感。
  • 你有钱,别人对你的态度 就不一定是真的了,所谓的夸赞,可能是虚情假意,因为 你比他们强,他们嫉妒你。

http://www.ppmy.cn/news/1433912.html

相关文章

2024创业项目新方向,智享无人实景直播配合智能贴图数字人,让直播更简单,帮助商家快速引流客户到店,帮助创业者轻松实现梦想!

随着科技的迅猛发展&#xff0c;直播行业也经历了一次又一次的变革和创新。在2024年&#xff0c;AI实景无人直播成为了这个领域的全新宠儿&#xff0c;为商家和观众带来了前所未有的智能、高效体验。这种革命性的直播方式不仅降低了运营成本&#xff0c;还极大地提升了直播的效…

算法学习系列(五十一):背包模型(一)

目录 引言一、采药二、装箱问题三、宠物小精灵之收服 引言 关于 背包问题 可以参考我之前的博客&#xff0c;由于基础的算法和模板已经学过了&#xff0c;所以现在就是开始学模型了&#xff0c;难点就是阅读理解、抽象模型、代码熟练度、心理素质也就是这几个难点了&#xff0…

Spring源码中的简单工厂模式

Spring 源码中广泛运用了各种设计模式,其中包括简单工厂模式。简单工厂模式在 Spring 中主要用于简化对象的创建过程,将对象的创建逻辑集中管理,从而使得客户端代码无需关心具体的对象创建细节,只需与工厂交互就能获取所需的对象实例。这种设计有助于提高代码的可读性、可维…

什么是关键信息基础设施及其安全保护条例

关键信息基础设施是国家的重要战略资源&#xff0c;涉及到国家的主权、安全和发展利益。这些设施在国家经济和社会服务中承担着重要角色&#xff0c;其安全稳定运行直接关系到国家安全和经济社会健康发展。让我们一起来了解一下什么是关键信息基础设施及其安全保护条例。 一、…

ELK创建仪表盘

创建仪表盘步骤&#xff1a; 一、保存search二、生成饼图三、创建仪表盘 一、保存search 首先保存一段时间内的search&#xff0c;可以添加想要的字段&#xff0c;并保存这个search方便下次直接打开该search&#xff0c;并方便在可视化和仪表盘中使用该search. 二、生成饼图…

【数据库】三、数据库SQL语言命令(基础从入门到入土)

【全文两万多字&#xff0c;涵盖大部分常见情况&#xff0c;建议点赞收藏】 目录 文章目录 目录安装SQL语言1.使用2.DATABASE查看所有库新建数据库修改数据库删除数据库连接数据库 3.TABLE创建表查看库所有表删除表查看表信息重命名表修改表字段&#xff08;列&#xff09;表中…

【每日力扣】2007. 从双倍数组中还原原数组 与3. 无重复字符的最长子串

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 2007. 从双倍数组中还原原数组 一个整数数组 original 可以转变成一个 双倍 数组 changed &#xff0c;转变方式为将 original 中…

【热议】硕士和读博士洗碗区别的两大理论

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验&#xff0c;帮助大家尽早适应研究生生活&#xff0c;尽快了解科研的本质。祝一切顺利&#xff01;—…