java spring boot Swagger安装及使用

https://springdoc.org/

可能原因分析 🔍
原因 1:SpringFox 版本与 Spring Boot 版本不兼容 ❌
SpringFox 3.0.0 不完全兼容 Spring Boot 2.6+ 及更高版本,可能导致 NullPointerException。
Spring Boot 3.x 完全不支持 SpringFox,必须使用 springdoc-openapi 替代。

java spring boot Swagger 安装及使用

在前后端分离开发的过程中,前端和后端需要进行api对接进行交互,就需要一个api规范文档,方便前后端的交互,但api文档不能根据代码的变化发生实时动态的改变,这样后端修改了接口,前端不能及时获取最新的接口,导致调用出错,需要手动维护api文档,加大了开发的工作量和困难,而swagger的出现就是为了解决这一系列的问题。

Swagger是一套基于OpenAPI规范构建的开源工具,使用RestApi

代码变,文档变
跨语言,支持多种语言
Swagger-ui 呈现出来的是一份可交互式的API文档,可以直接在文档页面尝试API的调用
可以将文档规范导入相关工具(postman、soapui),这些工具将会为我们自动地创建自动化测试
RestApi格式是根据请求的方式决定本次请求的一个操作,譬如:get–>读,post–>写(增、删、改),put–>修改,delete–>删除
OpenApi与语言无关,只是一种规范,可以使用yaml和json格式进行编写,这样更利于我们和机器进行阅读

Swagger主要包含了以下三个部分:

Swagger editor:基于浏览器的编辑器,我们可以使用它编写我们OpenApi规范(yaml或者json配置)
Swagger UI:他会将我们编写的OpenApi规范呈现为交互式的API文档,后文我将使用浏览器来查看并且操作我们的RestApi
Swagger Codegen:它可以通过OpenApi规范定义的任何API生成服务器存根和客户端SDK来简化构建过程
springfox

使用swagger时如果碰见版本更新迭代时,只需要更改swagger的描述文件即可,但是在频繁的更新项目版本时很多开发人员认为即使修改描述文件(yml或json文件)也是一定的工作负担,久而久之就直接修改代码,而不去修改描述文件了,这样基于描述文件生成接口文档也失去了意义。
Marty Pitt编写了一个基于spring的组件swagger-springmvc,Spring-fox就是根据这个组件发展而来的全新项目;
Spring-fox是根据代码生成接口文档,所以正常的进行更新项目版本,修改代码即可,而不需要跟随修改描述文件(yml或json文件);
spring-fox利用自身AOP特性,把swagger集成进来,底层还是Swagger,但是使用起来却方便很多,所以在实际开发中,都是直接使用spring-fox。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87313.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商云仓/前置仓的物流高效监控、管理、预警系统,快递鸟DMS

在电商行业蓬勃发展的当下,电商云仓和前置仓作为物流配送体系的关键环节,其高效运作直接影响着消费者体验与企业竞争力。快递鸟 DMS 物流交付管理平台,以其卓越的物流监控、管理及预警功能,成为电商企业优化云仓和前置仓物流管理的…

HarmonyOS Next深度解析:高德定位SDK高效集成与实战指南

HarmoyOS Next 实现高德定位SDK 注:作者采用版本为 HarmonyOS 5.0.0 Release SDK和DevEco Studio 5.0.0 Release。 1.获取本地AppID: 在index.pages的abountToAppear( ) 方法中获取appID、并打印在Log日志,即可在程序运行时获取本地项目的…

【技术】记一次 Docker 中的 ES 数据迁移,使用 Reindex API

记一次 Docker 中的 ES 数据迁移,使用 Reindex API 环境背景需求背景开始迁移确认老 ES 的访问地址在新 ES 中创建索引的 Mapping (选配)在新 ES 中配置老 ES 的地址开始迁移数据数据验证 首先声明,是因为环境限制,没有办法使用同步工具&…

yii2基础版本安装记录,实录有点乱看标题即可

因为使用php 安装的是docker环境所有进入到容器安装ridh_mfe_api 为挂载目录 Nginx及PHP挂载配置 因为使用php 安装的是docker环境所有进入到容器安装 ridh_mfe_api 为挂载目录 进入容器 % docker exec -it php sh /var/www/html # ls index.html index.php composer crea…

前端跨域解决方案(3):CORS

1 CORS 核心 CORS(Cross-Origin Resource Sharing),即跨域资源共享,是目前最主流的跨域方案,它通过服务器返回的特殊 HTTP 头,允许浏览器放行跨域请求。与传统的 JSONP 相比,CORS 具有明显的优…

SpringBoot源码解析(十五):spring-boot-autoconfigure.jar的模块化设计

前言 SpringBoot的自动配置是其革命性特性的核心,而spring-boot-autoconfigure.jar则是这一机制的物理载体。本文将深入剖析这个JAR包的模块化设计哲学,从包结构划分、条件注解体系到自动配置加载机制,全方位解析SpringBoot如何通过精妙的模…

学习笔记九:docker容器日志问题

docker容器日志问题 背景如何处理日志问题主要通过日志轮询方式处理。修改 Docker 配置日志快速清理 背景 Docker 默认使用的是 json-file 日志驱动。日志会一直写,一直写,没有限制、没有轮转、没有清理! 日志默认位置: /var/lib…

低成本同屏方案:电脑 + 路由器实现 50 台安卓平板实时同屏

引言 在教育机构、小型培训场景或企业简易会议中,常面临以最低成本实现多设备同屏的需求。本文针对 "电脑 路由器 50 台安卓平板" 的极简硬件组合,详细剖析实时同屏的实现路径,从问题分析到技术落地提供全流程解决方案&#xff0…

Unity ECS DOTS技术实现50000个cube随机循环移动流程

前言 之前使用过ECS面向组件开发,一直想试一下Unity的ECS DOTS技术,但是苦于入门门槛太高,下载官方的Demo,发现代码哪哪儿都看不懂,一大堆API闻所未闻,而且没有一个入门的流程,导致无法进行下去…

设计模式精讲 Day 3:抽象工厂模式(Abstract Factory Pattern)

【设计模式精讲 Day 3】抽象工厂模式(Abstract Factory Pattern) 文章简述 在软件开发中,随着业务复杂度的提升,系统需要支持多种产品族的创建。抽象工厂模式正是为了解决这一问题而诞生的设计模式之一。本文作为“设计模式精讲”…

Kafka消息零丢失架构设计:从原理到实战的全方位保障

引言 在构建高可靠分布式系统时,Kafka作为核心消息中间件被广泛应用于数据管道、实时流处理等关键场景。然而,分布式环境下的网络波动、节点故障等因素可能导致消息丢失,如何确保Kafka实现端到端的消息零丢失成为架构设计的关键挑战。本文将…

Python学习笔记:错误和异常处理

1. 什么是错误和异常 在Python中,错误可以分为两类: 语法错误(Syntax Errors):代码不符合Python语法规则异常(Exceptions):语法正确的代码在运行时发生的错误 # 语法错误示例 print("Hello World" # 缺少右括号# 异…

为什么要进行行为验证,行为验证方式有哪些?

进行行为验证的主要目的是提高账户安全性、防范自动化攻击、增强用户身份确认精准度、优化用户体验。其中,提高账户安全性最为关键。行为验证能通过分析用户的行为模式,如操作习惯、设备使用特点等,识别出非正常或恶意活动,迅速采…

主流Java Redis客户端(Jedis、Lettuce、Redisson)差异对比

主流Java客户端对比:Jedis采用阻塞I/O,需连接池支持;Lettuce/Redisson基于Netty非阻塞I/O。Jedis轻量但并发能力弱,Lettuce支持10K并发且为SpringBoot默认,Redisson提供分布式功能但性能稍逊。 Redisson Lettuce 在 …

使用Hexo搭建博客网站(二)

设置主题 我们在官方主题中选择一个自己喜欢的主题 来到GitHub,将它git clone到当前项目的themes文件夹中 设置_config.yml 找到 # Extensions ## Plugins: https://hexo.io/plugins/ ## Themes: https://hexo.io/themes/ theme: landscape 只需将这个landscape名字…

springAI 大模型应用开发

一 笔记总结 1.1 spring AI 实战 1.1.1 spring aideepseek整合 通过使用spring ai 调用大模型deepseek,实现对话聊天,文字转图片,文字转音频。 1.1.2 OLLAMA Ollama 专为本地部署和运行大型语言模型(LLM)而设计的…

Java + Spring Boot 后端防抖应用实例

防抖工具(适用单机部署) DebounceUtil.java package com.weiyu.utils;import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import org.springframework.stereotype.Component;import java.util.Map; import java.util.c…

PostgreSQL 快速入门

PostgreSQL介绍 PostgreSQL 是一个功能强大的开源关系型数据库系统,它使用并扩展了 SQL 语言,并结合了许多功能,可以安全地存储和扩展复杂的数据工作 PostgreSQL 因其经过验证的架构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背…

CppCon 2016 学习:Out of memory? Business as usual.

当程序因为内存耗尽而抛出 std::bad_alloc 异常时,这并不意味着程序必须崩溃或停止运行。我们应该考虑“内存不足”作为一种可能正常出现的情况(“Out of memory? Business as usual.”),并设计应用程序能优雅地处理这种异常。 具…

庙算兵棋推演AI开发初探(8-神经网络模型接智能体进行游戏)

前言の碎碎念 由于我做的模仿学习,可能由于没有完全模仿,可以说效果很烂……后来用强化学习优化,这个倒是不用自己做数据集了,为方便大家只搞代码,这里只说这部分的经历和方法。 实践基础介绍 1-动作 先介绍一个强化…