Spring Boot 整合 Swagger3 如何生成接口文檔?

前后端分離的項目,接口文檔的存在十分重要。與手動編寫接口文檔不同,swagger是一個自動生成接口文檔的工具,在需求不斷變更的環境下,手動編寫文檔的效率實在太低。與新版的swagger3相比swagger2配置更少,使用更加方便。

1685頁 Java面試突擊核心講

一、pom文件中引入Swagger3依賴

<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

二、Application上面加入@EnableOpenApi注解

@EnableOpenApi
@SpringBootApplication
@MapperScan(basePackages = {"cn.ruiyeclub.dao"})
public class Swagger3Application {public static void main(String[] args) {SpringApplication.run(Swagger3Application.class, args);}

三、Swagger3Config的配置

@Configuration
public class Swagger3Config {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Swagger3接口文檔").description("更多請咨詢服務開發者Ray。").contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();}
}

四、Swagger注解的使用說明

@Api:用在請求的類上,表示對類的說明tags="說明該類的作用,可以在UI界面上看到的注解"value="該參數沒什么意義,在UI界面上也看到,所以不需要配置"@ApiOperation:用在請求的方法上,說明方法的用途、作用value="說明方法的用途、作用"notes="方法的備注說明"@ApiImplicitParams:用在請求的方法上,表示一組參數說明@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個請求參數的各個方面name:參數名value:參數的漢字說明、解釋required:參數是否必須傳paramType:參數放在哪個地方· header --> 請求參數的獲取:@RequestHeader· query --> 請求參數的獲取:@RequestParam· path(用于restful接口)--> 請求參數的獲取:@PathVariable· body(不常用)· form(不常用)    dataType:參數類型,默認String,其它值dataType="Integer"       defaultValue:參數的默認值@ApiResponses:用在請求的方法上,表示一組響應@ApiResponse:用在@ApiResponses中,一般用于表達一個錯誤的響應信息code:數字,例如400message:信息,例如"請求參數沒填好"response:拋出異常的類@ApiModel:用于響應類上,表示一個返回響應數據的信息(這種一般用在post創建的時候,使用@RequestBody這樣的場景,請求參數無法使用@ApiImplicitParam注解進行描述的時候)@ApiModelProperty:用在屬性上,描述響應類的屬性

Controller層的配置:

@Api(tags = "用戶信息管理")
@RestController
@RequestMapping("userRecord")
public class UserRecordController extends ApiController {/*** 服務對象*/@Resourceprivate UserRecordService userRecordService;/*** 分頁查詢所有數據* @param page       分頁對象* @param userRecord 查詢實體* @return 所有數據*/@ApiOperation("分頁查詢所有數據")@GetMapping("page")public R selectAll(Page<UserRecord> page, UserRecord userRecord) {return success(this.userRecordService.page(page, new QueryWrapper<>(userRecord)));}/*** 通過主鍵查詢單條數據* @param id 主鍵* @return 單條數據*/@ApiOperation("通過主鍵查詢單條數據")@GetMapping("{id}")public R selectOne(@PathVariable Serializable id) {return success(this.userRecordService.getById(id));}/*** 新增數據* @param userRecord 實體對象* @return 新增結果*/@ApiOperation("新增數據")@PostMapping("insert")public R insert(@RequestBody UserRecord userRecord) {return success(this.userRecordService.save(userRecord));}/*** 修改數據* @param userRecord 實體對象* @return 修改結果*/@ApiOperation("修改數據")@PutMapping("update")public R update(@RequestBody UserRecord userRecord) {return success(this.userRecordService.updateById(userRecord));}/*** 刪除數據* @param idList 主鍵結合* @return 刪除結果*/@ApiOperation("刪除數據")@DeleteMapping("delete")public R delete(@RequestParam("idList") List<Long> idList) {return success(this.userRecordService.removeByIds(idList));}
}

五、Swagger界面效果

Swagger的訪問路徑由port/swagger-ui.html改成了port/swagger-ui/ 或port/swagger-ui/index.html,項目演示代碼在springboot-swagger

如果這篇文章對你有幫助的話,記得給我點贊關注走一波,你的鼓勵是對我最大的支持!謝謝。

1685頁 Java面試突擊核心講

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

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

相關文章

Rust 的智能指針

在 Rust 中&#xff0c;智能指針是一種特殊的數據結構&#xff0c;它不僅存儲數據的地址&#xff0c;還提供了額外的功能&#xff0c;如自動內存管理、引用計數等。智能指針在 Rust 中非常重要&#xff0c;因為它們幫助開發者管理內存&#xff0c;同時保持代碼的安全性和效率。…

Redis RDB 持久化:原理、觸發方式與優缺點全解析

引言 作為 Redis 最經典的持久化機制之一&#xff0c;RDB&#xff08;Redis DataBase&#xff09;憑借高效的快照生成能力和快速的恢復速度&#xff0c;一直是開發者的心頭好。但很多人對它的底層原理、觸發時機和適用場景仍存在疑惑。今天咱們就對RDB進行全解析&#xff0c;幫…

設計模式精講 Day 12:代理模式(Proxy Pattern)

【設計模式精講 Day 12】代理模式&#xff08;Proxy Pattern&#xff09; 文章內容 在軟件開發中&#xff0c;代理模式是一種常見的結構型設計模式&#xff0c;它通過引入一個代理對象來控制對真實對象的訪問。這種模式不僅能夠增強系統的安全性、靈活性和可擴展性&#xff0c…

企業級知識庫私有化部署:騰訊混元+云容器服務TKE實戰

1. 背景需求分析 在金融、醫療等數據敏感行業&#xff0c;企業需要構建完全自主可控的知識庫系統。本文以某證券機構智能投研系統為原型&#xff0c;演示如何基于騰訊混元大模型與TKE容器服務實現&#xff1a; 千億級參數模型的私有化部署金融領域垂直場景微調高并發低延遲推…

Qt事件系統詳解

一、Qt事件系統概述 Qt事件系統是Qt框架中處理用戶輸入、窗口交互、定時器、異步操作等機制的核心。所有事件均繼承自QEvent類&#xff0c;并通過事件循環&#xff08;Event Loop&#xff09;分發到目標對象。 事件系統基本概念 事件(Event)&#xff1a;描述應用程序內部或外…

CPU性能篇-系統中出現大量不可中斷進程和僵尸進程怎么辦? Day 05

在上下文切換的文章中&#xff0c;學習并分析了系統 CPU 使用率高的問題&#xff0c;剩下的等待 I/O 的 CPU 使用率&#xff08;以下簡稱為 iowait&#xff09;升高&#xff0c;也是最常見的一個服務器性能問題。今天就來看一個多進程 I/O 的案例&#xff0c;并分析這種情況。 …

ASP.NET Core + Jenkins 實現自動化發布

一、安裝Jenkins 我這邊服務器是Linux CentOS 7 &#xff0c;使用SSH 登錄云服務器后&#xff0c;輸入以下命令安裝jenkins. sudo wget -O /etc/yum.repos.d/jenkins.repo \https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/red…

Java項目RestfulAPI設計最佳實踐

大家好&#xff0c;我是鋒哥。今天分享關于【Java項目RestfulAPI設計最佳實踐】面試題。希望對大家有幫助&#xff1b; Java項目RestfulAPI設計最佳實踐 超硬核AI學習資料&#xff0c;現在永久免費了&#xff01; 設計一個高效、易維護的 Java 項目中的 RESTful API 涉及到一…

FANUC機器人教程:用戶坐標系標定及其使用方法

目錄 概述 工作站創建 任務描述 用戶坐標系標定方法 用戶坐標系標定操作 用戶坐標系手動測試 用戶坐標系在程序中的應用 用戶坐標系選擇指令介紹 機器人示教編程 仿真運行 仿真案例資源下載 概述 FANUC機器人的用戶坐標系&#xff0c;是用戶對每個作業空間定義的直…

動態庫與靜態庫【Linux】

程序編譯過程 源代碼(.cpp) → 預處理(.i) → 編譯(.s) → 匯編(.o) → 鏈接(可執行文件) g -o main.i -E main.cpp 參數說明&#xff1a; 參數功能輸出文件類型-E僅預處理.i-S預處理 編譯.s-c預處理 編譯 匯編.o無完整流程&#xff08;預處理→編譯→匯編→鏈接&…

MySQL MHA 故障轉移-VIP

MHA故障轉移-VIP #手工在主庫添加VIP ifconfig ens33:1 192.168.80.200/24配置VIP腳本 vim /usr/local/bin/master_ip_failoverchmod x /usr/local/bin/#!/usr/bin/env perl use strict; use warnings FATAL > all;use Getopt::Long;my ( $command, $ssh_user, $orig_mast…

Elasticsearch索引字段的類型

在 Elasticsearch 中&#xff0c;索引字段的類型&#xff08;即 Mapping 中的字段類型&#xff09;對搜索和存儲性能影響很大。下面是各種常用數據類型的用途及推薦使用場景總結&#xff1a; 1. keyword 類型&#xff08;精確匹配&#xff09; 適合數據&#xff1a; 不需要分詞…

kubernetes證書續簽-使用kubeadm更新證書(下)

#作者&#xff1a;任少近 文章目錄 查看kubelet證書查看kubelet當前所使用的證書 更換 node上的kubelet證書生成node1所需要的kubelet.conf文件生成node2所需要的kubelet.conf文件查看csr 更新 ~/.kube/config 文件重啟相關組件 查看kubelet證書 以上少了kubelet的證書&#…

AI智能體長期記憶系統架構設計:從認知模型到生產實踐

1 長期記憶:AI智能體的認知基石 1.1 人類記憶與AI記憶的類比 #mermaid-svg-VIPKAFe7VgN4UHFA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-VIPKAFe7VgN4UHFA .error-icon{fill:#552222;}#mermaid-svg-VIPKAFe7V…

快速上手:利用音頻大模型與Java提取視頻文案

文章目錄 1、前言2、需求說明2.1 需求說明2.2 數據準備 3、功能實現3.1 使用視頻理解大模型能力3.1.1 三方平臺視頻在線鏈接解析3.1.2 三方平臺視頻內網鏈接解析3.1.3 三方平臺視頻轉存本地服務 3.2 使用音頻識別大模型能力3.2.1 三方平臺視頻在線鏈接解析3.2.2 三方平臺視頻詳…

LLM復雜記憶存儲-多會話隔離案例實戰

導讀&#xff1a;在多用戶并發的對話系統中&#xff0c;會話隔離問題往往成為開發者面臨的技術難題。當數千個用戶同時與AI助手交互時&#xff0c;如何確保每個用戶的對話歷史完全獨立&#xff0c;避免數據混淆和隱私泄露&#xff1f; 本文深入剖析了基于RunnableWithMessageHi…

【PX4-AutoPilot教程-TIPS】PX4系統命令行控制臺ConsolesShells常用命令(持續更新)

PX4系統命令行控制臺 Consoles & Shells 常用命令 查看每個應用程序的堆棧使用情況獲取所有可用命令和APP的列表應用程序啟動、停止和狀態查詢查看本地文件系統查看剩余的可用RAM查看工作隊列中正在運行的內容以及運行速率查看特定的uORB話題調試uORB話題進行模式切換和故障…

國內優秀wordpress主題推薦

在國內&#xff0c;WordPress 主題市場雖然不如國外那樣龐大&#xff0c;但依然有許多優秀且適合中國用戶需求的主題。以下是一些經過評估和推薦的國內優秀WordPress主題&#xff0c;涵蓋不同類型的網站需求&#xff0c;如博客、企業官網、資源站、社區論壇等。 WP漢主題 WP漢…

第 6 章:進階話題

第 6 章&#xff1a;進階話題 過擬合vs欠擬合&#xff1a;模型復雜度和泛化能力的關系 在前面的章節中&#xff0c;我們已經學習了神經網絡的基礎知識、常見架構和基本訓練流程。然而&#xff0c;在實際的深度學習項目中&#xff0c;僅僅掌握這些基礎知識是不夠的。我們還需要…

4.2_1樸素模式匹配算法

知識總覽&#xff1a; 什么是字符串的模式匹配&#xff1a; 主串&#xff1a;想從該串獲取結果的串 模式串&#xff1a;想搜索的內容&#xff0c;不一定在主串中能搜到&#xff0c;子串一定能在主串中搜到 字符串模式匹配&#xff1a;在主串找模式串并返回找到的第一個模式串…