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
英文地址,請注明出處:http://en.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-動作 先介紹一個強化…