Swagger 配置及使用指南

Spring Boot 項目集成 Swagger 配置及使用指南

一、Swagger 簡介

Swagger 是一個用于設計、構建、文檔化和使用 RESTful API 的框架。通過集成 Swagger,開發者可以:

  • 自動生成實時 API 文檔
  • 直接在瀏覽器中測試 API 接口
  • 減少手動編寫文檔的工作量
  • 支持團隊協作開發

二、環境配置(Spring Boot 2.7.x 示例)

1. 添加 Maven 依賴

<!-- pom.xml -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>3.0.0</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>3.0.0</version>
</dependency>

2. 創建配置類

@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 指定掃描包.paths(PathSelectors.any()).build().apiInfo(apiInfo());}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("API 文檔").description("Spring Boot 集成 Swagger 示例").version("1.0.0").contact(new Contact("開發者", "https://example.com", "contact@example.com")).build();}
}

3. 解決常見啟動問題

# application.yml
spring:mvc:pathmatch:matching-strategy: ANT_PATH_MATCHER # 解決 Spring Boot 2.6+ 版本問題

三、Swagger 注解使用

1. Controller 層注解

@RestController
@Api(tags = "用戶管理接口")
@RequestMapping("/api/users")
public class UserController {@ApiOperation(value = "獲取用戶詳情", notes = "根據ID查詢用戶信息")@GetMapping("/{id}")public ResponseEntity<User> getUser(@ApiParam(value = "用戶ID", required = true, example = "1") @PathVariable Long id) {// 業務邏輯}
}

2. Model 層注解

@ApiModel(description = "用戶實體")
public class User {@ApiModelProperty(value = "用戶ID", example = "1001")private Long id;@ApiModelProperty(value = "用戶名", required = true, example = "john_doe")private String username;// getters/setters
}

四、訪問與測試

1. 訪問文檔頁面

啟動項目后訪問:

http://localhost:8080/swagger-ui/index.html

2. 接口測試示例

  1. 在 Swagger UI 中找到目標接口
  2. 點擊 “Try it out”
  3. 輸入請求參數
  4. 點擊 “Execute” 發送請求
  5. 查看響應結果和狀態碼

五、高級配置(可選)

1. 安全配置

// 允許訪問 Swagger 資源
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");}
}

2. 分組配置

// 創建多個 API 分組
@Bean
public Docket adminApi() {return new Docket(DocumentationType.SWAGGER_2).groupName("管理端接口").select().apis(RequestHandlerSelectors.basePackage("com.example.admin")).build();
}

六、最佳實踐建議

  1. 在開發環境開啟 Swagger,生產環境建議關閉
  2. 使用 @ApiIgnore 忽略不需要展示的接口
  3. 保持文檔與代碼同步更新
  4. 為每個參數添加示例值(example)
  5. 合理使用響應狀態碼描述

七、常見問題解決

  1. 頁面404:檢查依賴版本是否沖突
  2. 接口未顯示:確認包掃描路徑正確
  3. 參數類型錯誤:添加 @RequestParam/@PathVariable 注解
  4. 日期格式問題:在配置中添加全局日期格式

通過以上配置和使用方法,開發者可以快速在 Spring Boot 項目中集成 Swagger,顯著提升 API 開發效率。建議結合實際項目需求靈活運用各種注解,并定期查看生成的文檔驗證準確性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916385.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916385.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916385.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是緩存雪崩?緩存擊穿?緩存穿透?分別如何解決?什么是緩存預熱?

緩存雪崩&#xff1a;在一個時間段內&#xff0c;有大量的key過期&#xff0c;或者Redis服務宕機&#xff0c;導致大量的請求到達數據庫,帶來巨大壓力- 給key設置不同的TTL、利用Redis集群提高服務的高可用性、添加多級緩存、添加降級流策略緩存擊穿&#xff1a;給某一個key設置…

圖像預處理 二

目錄 1. 插值方法 1.1 最近鄰插值 1.2 雙線性插值 1.3 像素區域插值 1.4 雙三次插值 1.5 Lanczos插值 1.6 小結 2. 圖像掩膜 2.1 制作掩膜 2.2 與運算 2.3 顏色替換 2.3.1 制作掩膜 2.3.2 顏色替換 2.4 圖像掩膜代碼 3. 圖像添加水印 3.1 模板輸入 3.2 與運算 3…

1.Java發展簡史與設計哲學

目錄引言一、生活里到處都是 Java1.1 Java 在生活中的小例子1.2 Java 的核心應用場景二、Java 是咋誕生的&#xff0c;又有啥核心設計思想2.1 Java 的發展歷程2.2 Java 的三大設計哲學2.3 Java 哲學給行業帶來的變革三、為啥大家都選 Java 呢3.1 和其他主流編程語言對比的優勢3…

基于粒子群算法優化高斯過程回歸(PSO-GPR)的多輸出回歸

基于粒子群算法優化高斯過程回歸(PSO-GPR)的多輸出回歸 使用粒子群優化算法(PSO)優化高斯過程回歸(GPR)模型,解決多輸入多輸出(MIMO)回歸問題。該模型能夠同時預測多個相關輸出變量。 %% 基于粒子群算法優化高斯過程回歸(PSO-GPR)的多輸出回歸 % 作者: MATLAB技術助手 % 日期…

學Simulink——AC-DC整流器場景:基于PWM整流器拓撲結構的建模:三相電壓型PWM整流器(SR)單位功率因數控制仿真

目錄 手把手教你學Simulink——AC-DC整流器場景:基于PWM整流器拓撲結構的建模:三相電壓型PWM整流器(SR)單位功率因數控制仿真 一、背景介紹 二、系統結構設計 三、建模過程詳解 第一步:創建新Simulink項目 第二步:添加主要模塊 1. 三相交流電源 2. PWM整流器電路 …

深度解析 noisereduce:開源音頻降噪庫實踐

項目簡介 noisereduce 是一個基于 Python 的開源音頻降噪庫,專注于為科研、工程和日常應用提供簡單高效的噪聲抑制工具。該項目由 Tim Sainburg 維護,核心算法基于頻譜減法(Spectral Gating),無需深度學習或復雜訓練,適合快速集成到音頻處理、語音識別、播客后期、科學實…

lottie 動畫使用

lottie 官網&#xff1a; https://app.lottiefiles.comhttps://app.lottiefiles.com 選擇動畫 未下載過 已下載過 點擊download 保存到自己的工作空間后&#xff0c;可獲取lottie文件 使用vue 點擊后獲取代碼 第一步&#xff0c;項目中加載模塊 npm install lottiefiles/do…

Java,八股,cv,算法——雙非研0四修之路day16

目錄 昨日總結 今日計劃 算法——兩個數組的交集 算法——兩數之和 緩存穿透 常見解決方案 緩存雪崩 常見解決方案 緩存擊穿 常見解決方案 棧溢出 堆溢出 功能接口式參數&泛型函數 ?編輯 昨日總結 緩存問題完結&#xff08;緩存穿透、雪崩、擊穿&#xff09;…

基于python的微博評論和博文文本分析,包括LDA+聚類+詞頻分析+lstm熱度預測,數據量10000條

思路步驟&#xff1a;本文實現了從文本評論數據中提取有用信息&#xff0c;分析其情感分布、主題分布&#xff0c;并通過可視化展示。以下是具體步驟和思路&#xff1a;1、數據準備與預處理加載數據&#xff1a;通過 pandas 讀取文本和評論數據&#xff0c;并進行合并處理。文本…

【CNN】模型評估標準

1.分類模型評價指標在模型評估中&#xff0c;有多個標準用于衡量模型的性能&#xff0c;這些標準包括準確率&#xff08;Accuracy&#xff09;、精確率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、F1 分數&#xff08;F1-Score&#xff09;等。…

Python爬蟲實戰:詩詞名句網《三國演義》全集

Beautiful Soup實戰案例&#xff1a;爬取"詩詞名句網" 目標 爬取"詩詞名句網"上的古典文學作品內容&#xff0c;包括書籍目錄和章節內容&#xff0c;并將每章內容獨立保存為文本文件。 目標網址: 《三國演義》全集在線閱讀_史書典籍_詩詞名句網 要求 書…

AWS CAF:企業云轉型的戰略指南

在數字化轉型的大潮中&#xff0c;企業正面臨前所未有的變革壓力。如何利用云計算驅動業務創新、提升IT敏捷性、優化成本結構&#xff0c;已成為眾多企業迫切需要解決的關鍵課題。然而&#xff0c;云遷移并不是簡單地將本地應用“復制”到云上&#xff0c;它是一項牽涉企業組織…

【Redis】Linux 配置Redis

一、Redis介紹 Redis&#xff08;Remote Dictionary Server&#xff09;是一款開源的、高性能的鍵值對&#xff08;Key-Value&#xff09;存儲數據庫&#xff0c;由 Salvatore Sanfilippo 于 2009 年開發&#xff0c;采用 ANSI C 語言編寫。它以內存存儲為核心&#xff0c;支持…

MongoDB數據庫高并發商業實踐優化·運行優化之不可使用root賬戶進行MongoDB運行-優雅草卓伊凡

MongoDB數據庫高并發商業實踐優化運行優化之不可使用root賬戶進行MongoDB運行-優雅草卓伊凡 引言 關于最近優雅草卓伊凡發布關于MongoDB的內容是由于我們的甲方上線了一個很老的產品&#xff0c;但是他的用戶量極大&#xff0c;并且還有各種人搞事情&#xff0c;不斷的來GJ&a…

戴爾電腦 Linux 安裝與配置指南_導入mysql共享文件夾

本指南將詳細介紹在戴爾電腦上安裝 Linux 操作系統的步驟&#xff0c;以及后續的重要配置&#xff0c;包括系統選擇、安裝流程、MySQL 數據恢復、網絡配置、文件共享和遠程維護等。步驟清晰且配有命令行示例和配置文件示例&#xff0c;適合初中級用戶參考。1、Linux 系統選擇與…

昇思學習營-DeepSeek-R1-Distill-Qwen-1.5B 模型LoRA微調學習心得

LoRA微調&#xff1a;加入參數式微調凍結原始網絡參數&#xff0c;對Attention層中QKV等添加旁支&#xff0c;包含兩個低維度的矩陣A和矩陣B&#xff0c;微調過程中僅更新A、B 矩陣效果&#xff1a;訓練參數被大幅降低&#xff0c;資源消耗較低。對attention的參數加入如下圖所…

彩色轉灰度的核心邏輯:三種經典方法及原理對比

灰度實驗將彩色圖像轉換為灰度圖像的過程稱為灰度化&#xff0c;這種做法在圖像處理和計算機視覺領域非常常見。灰度圖與彩色圖最大的不同就是&#xff1a;彩色圖是由R、G、B三個通道組成&#xff0c;而灰度圖只有一個通道&#xff0c;也稱為單通道圖像&#xff0c;所以彩色圖轉…

Spring Boot 項目啟動自動執行邏輯的最佳實踐:掌握 CommandLineRunner

前言 Spring Boot 啟動階段,總有些操作迫不及待沖在前線:配置要加載,數據要準備,日志要搶首發,仿佛個個爭當“啟動 MVP”。如果你也想讓項目一啟動就自動開工,少寫點手動觸發的“苦力邏輯”,那 CommandLineRunner 就是你的得力助手。它像那個永遠第一個打卡的同事,不喝…

高可用集群KEEPALIVED的詳細部署

一.高可用集群 1.1 集群類型 LB&#xff1a;Load Balance 負載均衡 LVS/HAProxy/nginx&#xff08;http/upstream, stream/upstream&#xff09; HA&#xff1a;High Availability 高可用集群 數據庫、Redis SPoF: Single Point of Failure&#xff0c;解決單點故障 HPC&#x…

[論文閱讀] 人工智能 + 軟件工程 | NoCode-bench:評估LLM無代碼功能添加能力的新基準

NoCode-bench&#xff1a;評估LLM無代碼功能添加能力的新基準 論文&#xff1a;NoCode-bench: A Benchmark for Evaluating Natural Language-Driven Feature Addition 研究背景&#xff1a;當AI嘗試給軟件"加新功能"&#xff0c;我們需要一張靠譜的"考卷"…