甩掉接口文檔煩惱!Spring Boot 集成 Knife4j,輕松玩轉 API 可視化

一、引言:跟接口文檔說拜拜 👋

作為一名 Java 開發者,你是否還在為編寫繁瑣的 API 文檔而頭疼?傳統的手動編寫方式不僅耗時費力,而且容易出錯,難以維護。今天,我們就來介紹一款神器 Knife4j,它可以幫助你輕松生成美觀、易于使用的 API 文檔,讓你告別文檔編寫煩惱!

二、Knife4j 簡介:API 文檔界的“后起之秀”

簡單來說,Knife4j 是一個集 Swagger2 和 OpenAPI3 為一體的增強解決方案,它不僅擁有 Swagger 的所有功能,還做了很多優化和增強,例如:

  • 界面更美觀: 提供簡潔美觀的界面,方便用戶瀏覽和使用 API 文檔。
  • 功能更豐富: 支持接口排序、搜索、分組等功能,支持多種格式輸出。
  • 易用性更高: 提供了更友好的配置方式,使用起來更加簡單方便。

三、Spring Boot 集成 Knife4j:三步搞定,輕松上手 🚀

1. 添加依賴:引入 Knife4j 包

在你的 Spring Boot 項目的 pom.xml 文件中添加以下依賴:

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version>
</dependency>

2. 配置 Knife4j:告訴它你的 API 信息

創建一個配置類,例如 Knife4jConfiguration,使用 @EnableSwagger2WebMvc 注解開啟 Swagger 功能,并配置 Docket Bean,就像這樣:

package com.muqing.common.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {@Bean(value = "mq-admin-api")public Docket defaultApi2() {Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder().title("MQ-ADMIN API文檔").description("# 基于 Spring Boot 與 Vue3 的后臺管理系統。").termsOfServiceUrl("https://doc.uyii.cn/").contact("zhy@uyii.cn").version("1.0").build()).select().paths(PathSelectors.any()).build();return docket;}
}

3. 運行項目:見證奇跡的時刻 ?

啟動你的 Spring Boot 應用,在瀏覽器中訪問 http://localhost:8800/doc.html,你就能看到 Knife4j 生成的 API 文檔啦!

四、進階用法:玩轉 Knife4j,定制你的 API 文檔 🎨

  • 分組管理 API 文檔:
  @Beanpublic Docket adminApi() {return new Docket(DocumentationType.SWAGGER_2).groupName("admin").select().apis(RequestHandlerSelectors.basePackage("com.muqing.admin")) // 修改為你的模塊包路徑.paths(PathSelectors.any()).build();}@Beanpublic Docket frontApi() {return new Docket(DocumentationType.SWAGGER_2).groupName("front").select().apis(RequestHandlerSelectors.basePackage("com.muqing.front")) // 修改為你的模塊包路徑.paths(PathSelectors.any()).build();}
  • 自定義 API 信息:
@RestController
@RequestMapping("/users")
@Api(tags = "用戶管理")
public class UserController {@GetMapping("/{id}")@ApiOperation("獲取用戶信息")public User getUser(@PathVariable Long id) {// ...}
}

五、實戰演練:小試牛刀,鞏固學習成果 💪

我們來創建一個簡單的 Spring Boot 項目,演示如何使用 Knife4j 生成 API 文檔:

1. 創建一個 Spring Boot 項目,添加 Web 依賴和 Knife4j 依賴。

2. 創建一個 FrontIndexController,編寫接口:

package com.muqing.front.controller;import com.muqing.common.api.ApiResult;
import com.muqing.front.entity.Article;
import com.muqing.front.service.FrontIndexService;
import com.muqing.front.vo.IndexVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** IndexController** @author zhy* @since 2023/6/5*/
@RestController
@Api(tags = "后臺首頁")
@RequestMapping("/front")
public class FrontIndexController {@Autowiredprivate FrontIndexService frontIndexService;/*** 首頁博主信息** @return {@link ApiResult}<{@link IndexVo}>*/@ApiOperation("博主信息")@GetMapping()public ApiResult<IndexVo> index() {IndexVo IndexVo = frontIndexService.getAuthorInfo();return ApiResult.success(IndexVo);}/*** 關于我** @return {@link Article}*/@ApiOperation("關于我")@GetMapping("/about")public ApiResult<Article> about() {Article article = frontIndexService.getAbout();return ApiResult.success(article);}
}

3. 運行項目,訪問 http://localhost:8080/doc.html,查看生成的 API 文檔。

結語:API 文檔,從此輕松搞定 🎉

Knife4j 為我們提供了一種簡單高效的方式來生成和管理 API 文檔,從此告別繁瑣的手動編寫,讓前后端協作更加順暢!
希望這篇文章能夠幫助你快速上手 Knife4j,更多進階的技能請閱讀官方文檔! 🎉

參考資料:學習永無止境 📚

  • Knife4j 官方文檔
  • Swagger 官方文檔

個人觀點,僅供參考,本文內容如有問題,歡迎留言討論。


在這里插入圖片描述

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

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

相關文章

win10雙網卡如何同時上內網和外網?

win10雙網卡如何同時上內網和外網? Chapter1 win10雙網卡如何同時上內網和外網?Chapter2 網絡基礎--win10雙網卡設置成訪問不同的網絡 Chapter1 win10雙網卡如何同時上內網和外網? 原文鏈接&#xff1a;https://www.jb51.net/os/win10/806585.html 場景&#xff1a;很多辦…

【計算機畢業設計】388微信小程序足球賽事及隊伍管理系統

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

QT7_視頻知識點筆記_67_項目練習(頁面以及對話框的切換,自定義數據類型,DB數據庫類的自定義及使用)

視頻項目&#xff1a;7----汽車銷售管理系統&#xff08;登錄&#xff0c;品牌車管理&#xff0c;新車入庫&#xff0c;銷售統計圖表&#xff09;-----項目視頻沒有&#xff0c;代碼也不全&#xff0c;更改項目練習&#xff1a;學生信息管理系統。 學生信息管理系統&#xff1…

大模型助力企業提效,九章云極DataCanvas公司聯合騰訊搜狗輸入法發布私有化解決方案

近日&#xff0c;九章云極DataCanvas公司與騰訊搜狗輸入法的合作再次升級。在搜狗輸入法開發者中心正式推出之際&#xff0c;九章云極DataCanvas公司作為搜狗輸入法的首批開發合作伙伴&#xff0c;雙方聯合發布“企業知識管理助手”私有化解決方案。 “企業知識管理助手”整體私…

Facebook的魅力:數字時代的社交熱點

在當今數字化時代&#xff0c;社交媒體已經成為人們日常生活中不可或缺的一部分&#xff0c;而Facebook作為其中的巨頭&#xff0c;一直以其獨特的魅力吸引著全球數十億用戶。本文將深入探討Facebook的魅力所在&#xff0c;以及它在數字時代的社交熱點。 1. 社交網絡的霸主&…

最新微信小程序面試題集結

1、微信小程序與H5的區別? 第一條是運行環境的不同 傳統的HTML5的運行環境是瀏覽器&#xff0c;包括webview&#xff0c;而微信小程序的運行環境并非完整的瀏覽器&#xff0c;是微信開發團隊基于瀏覽器內核完全重構的一個內置解析器&#xff0c;針對小程序專門做了優化&…

對于高速信號完整性,一塊聊聊啊(17)

再來對前仿和后仿的仿真內容回顧一下&#xff1a; 從概念上有個根本的理解 前仿真又可以分為布局前仿真和布局后仿真。前者是在設計的最初階段&#xff0c;建立和驗證詳細的電氣拓撲結構并以此制定出詳細的約束規則。后者是在布局完成的狀態下&#xff0c;在布線過程中遇到的…

隨機生成序列的某一排列

隨機生成1~n的某一排列&#xff0c;要求生成每種可能的排列的概率相同 。 算法描述&#xff1a; 給定數值分別為1~n的序列a&#xff0c; 循環變量i從1到n&#xff0c;每次循環將a[i]與a[i]~a[n]中的隨機某元素交換&#xff0c;最后a數組即為隨機生成的某一排列。 #include <…

【2024】C/C++框架和庫超全總結

本文分為2部分&#xff0c;第一部分&#xff1a;值得學習的C/C語言開源項目&#xff1b;第二部分是開源框架和庫 粉絲福利&#xff0c; 免費領取C/C 開發學習資料包、技術視頻/項目代碼&#xff0c;1000道大廠面試題&#xff0c;內容包括&#xff08;C基礎&#xff0c;網絡編程…

MATLAB分類與判別模型算法:基于LVQ神經網絡的乳腺腫瘤診斷分類程序【含Matlab源碼 MX_003期】

說明 實現基于LVQ&#xff08;Learning Vector Quantization&#xff0c;學習向量量化&#xff09;神經網絡的乳腺腫瘤診斷分類任務。LVQ是一種監督學習算法&#xff0c;通常用于模式識別和分類任務。 算法思路介紹&#xff1a; 導入數據&#xff1a; 加載名為"data.mat&…

2024下半年軟考報名人數較去年減少,僅52.77萬

2024下半年軟考報名人數 2024年上半年軟考考試共計報考52.77萬人&#xff0c;其中&#xff0c;初級資格5.12萬人、中級資格24.37萬人、高級資格23.28萬人。 根據往年報名人數&#xff0c;本次考試人數是減少了的&#xff0c;原因分析如下&#xff1a; 1、原來報名熱門專業系…

C++的unique_ptr::release

釋放給調用方返回的存儲指針的所有權&#xff0c;并將存儲的指針值設置為nullptr。 使用 release接管unique_ptr存儲的原始指針的所有權。 調用方負責返回的指針的刪除。 unique-ptr設置為空的默認構造狀態。 在調用到release后&#xff0c;您可以將兼容類型的另一個指針分配到…

SSL證書申請需要多久?

SSL證書作為一種重要的網絡安全工具&#xff0c;能夠確保網站數據傳輸的安全&#xff0c;保護用戶隱私和企業數據不受侵害。本文將詳細介紹SSL證書的申請流程以及所需時間&#xff0c;幫助用戶更好地規劃和實施網絡安全策略。 SSL證書&#xff0c;也稱為TLS證書或HTTPS證書&am…

rest_asyncio 簡化和管理異步python編程中的 REST API 調用

簡介 rest_asyncio 是一個 Python 庫,用于簡化和管理異步編程中的 REST API 調用。它結合了 aiohttp 和 asyncio,提供了一種高效的方式來處理網絡請求和響應,特別是在需要大量并發請求的場景下,例如爬蟲、批量數據獲取或實時數據處理。 以下是 rest_asyncio 的主要功能和…

富格林:領會正規阻撓欺詐技巧

富格林悉知&#xff0c;在當今經濟不穩定的環境下&#xff0c;投資者們越來越傾向于將資金投入到相對安全和穩定的資產中&#xff0c;而黃金往往是他們的首選之一。但現貨黃金市場相對復雜&#xff0c;因此要想在這個市場中立足腳跟就得領會正規阻撓欺詐的技巧。以下富格林為大…

如何優化工時表管理,提升團隊效率?

時間就是金錢&#xff0c;對于企業來說&#xff0c;有效的工時表管理可以讓一切變得不同。 本文將介紹控制工時表并將業務推向新高度的策略和工具。從多級審批工作流程到利用技術&#xff0c;了解如何克服常見挑戰&#xff0c;收獲簡化工時管理流程的回報。 工時表管理,工時表…

Ardupilot開源飛控之AP_Follow

Ardupilot開源飛控之AP_Follow 1. 源由2. 定義2.1 ModeFollow類2.1.1 ModeFollow::update2.1.2 ModeFollow::_enter2.1.3 ModeFollow::_exit 2.2 AP_Follow類2.2.1 AP_Follow::handle_msg2.2.2 AP_Follow::get_target_location_and_velocity2.2.3 AP_Follow::get_velocity_ned …

getContentView(mBinding.getRoot()); 會導致內存泄露嗎?里面有SurfaceView ViewBinding

在上述代碼中&#xff0c;ActivityTestingBinding 是一個 Data Binding 庫生成的類&#xff0c;用于綁定 XML 布局到 Activity 中。inflate(getLayoutInflater()) 用于將布局文件解析并轉換為對應的視圖層次結構。然后 getWindow().setFlags() 設置窗口屬性&#xff0c;保持屏幕…

小型海外倉如何選擇第三方海外倉系統:多看多對比,性價比優先

在現在的海外倉市場中&#xff0c;中小型海外倉&#xff0c;家庭海外倉的占比還是非常大的。這類海外倉的一個共同點就是資金有限&#xff0c;管理能力比較弱&#xff0c;很難實現規模效應。 對于這類海外倉來說&#xff0c;選擇一套合適的第三方海外倉系統&#xff0c;對提升…

好用的國產大文件傳輸軟件有哪些,快來看看吧

在這個數字化飛速發展的時代&#xff0c;我們每天都在與各種文件打交道&#xff0c;從簡單的文檔到龐大的視頻素材&#xff0c;文件的體積越來越大&#xff0c;傳統的文件傳輸方式逐漸顯得力不從心。面對這個挑戰&#xff0c;大文件傳輸軟件應運而生&#xff0c;它們不僅解決了…