Knife4j:快速入門

1. 概述

Knife4j是一個用于生成和展示API文檔的工具,同時它還提供了在線調試的功能,下圖是其工作界面。

* Knife4j有多個版本,最新版的Knife4j基于開源項目`springdoc-openapi`,這個開源項目的核心功能就是根據SpringBoot項目中的代碼自動生成符合OpenAPI規范的接口信息。
* OpenAPI規范定義接口文檔的內容和格式,其前身是`Swagger`規范。?

2. 與springboot集成?

1.創建maven項目?

2.導入依賴

<dependency>
? ? <groupId>com.github.xiaoymin</groupId>
? ? <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
? ? <version>4.3.0</version>
</dependency>?

?3.創建配置類

@Configuration
public class Knife4jConfiguration {@Beanpublic OpenAPI openAPI() {return new OpenAPI().info(new Info().title("hello-knife4j項目API").version("1.0").description("hello-knife4j項目的接口文檔"));}@Beanpublic GroupedOpenApi userAPI() {return GroupedOpenApi.builder().group("用戶信息管理").pathsToMatch("/user/**").build();}@Beanpublic GroupedOpenApi systemAPI() {return GroupedOpenApi.builder().group("產品信息管理").pathsToMatch("/product/**").build();}
}

4.啟動SpringBoot項目,訪問http://localhost:8080/doc.html,觀察接口文檔。

?

3. 常用注解

@Schema`注解用于描述作為接口參數或者返回值的實體類的數據結構。

@Data
@Schema(description = "用戶實體類")
public class User {@Schema(description = "用戶id")private Integer id;@Schema(description = "用戶姓名")private String name;
}

?

@Tag注解用于對接口進行分類,相同`Tag`的接口會放在同一個菜單。

@Operation用于對接口進行描述。

@Parameter用于對HTTP請求參數進行描述

@RestController
@RequestMapping("/user")
@Tag(name = "用戶信息管理") //@Tag給該類起標題:用于描述該類
public class UserController {@GetMapping("/getId")@Operation(summary = "根據ID查詢用戶信息") //@Operation 屬性summary:用與說明該方法的作用public User getById(@Parameter(description = "用戶ID") @RequestParam("id") Integer id) {User user = new User();user.setId(id);return user;}
}

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

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

相關文章

uniapp uniCloud云開發

uniCloud概述 uniCloud 是 DCloud 聯合阿里云、騰訊云、支付寶云&#xff0c;為開發者提供的基于 serverless 模式和 js 編程的云開發平臺。 uniCloud 的 web控制臺地址&#xff1a;https://unicloud.dcloud.net.cn 文檔&#xff1a;https://doc.dcloud.net.cn/uniCloud/ un…

大模型應用-多模態和大模型是如何相互成就的

前言 如果單純的將大模型用來聊天&#xff0c;那就是low了。 而多模態賦予了大模型更多的現實價值&#xff0c;大模型則助力多模態變得更強大。 多模態 我們所處的是一個物理世界&#xff0c;不同事物之間模態多種多樣&#xff0c;即便是簡單的文本&#xff0c;按照語言&am…

【Docker0】網絡更改

目錄 1. 停止docker服務 2. 關閉docker默認橋接網絡接口 3. 從系統刪除docker0接口 4. 創建一個名為bridge0的新接口 5. 添加ip地址和子網掩碼 6. 啟用bridge0接口 7. &#xff08;如果沒起來就執行該句&#xff09; 8. 查看ip 1. 停止docker服務 sudo service docker…

c++用什么軟件編程?都有哪些?

c用什么軟件編程&#xff1f;都有哪些&#xff1f; C 作為一種高效、面向對象的編程語言&#xff0c;廣泛應用于軟件開發、游戲開發、嵌入式系統等領域。那么在進行 C 編程時&#xff0c;我們通常會使用哪些軟件呢&#xff1f;下面就來具體分析。 1. Visual Studio Visual Stu…

深入 SSH:解鎖本地轉發、遠程轉發和動態轉發的潛力

文章目錄 前言一、解鎖內部服務&#xff1a;SSH 本地轉發1.1 什么是 SSH 本地轉發1.2 本地轉發應用場景 二、打開外部訪問大門&#xff1a;SSH 遠程轉發2.1 什么是 SSH 遠程轉發2.2 遠程轉發應用場景 三、動態轉發&#xff1a;SSH 讓你擁有自己的 VPN3.1 什么是 SSH 動態轉發3.…

mysqldump全備份之后,如何只恢復一個庫或者一個表

在實際工作中,一個MySQL實例中可能有多個database。而我們備份時,通常采用完全備份,將所有database都備份到一個文件中。 但是,偶爾會遇到只恢復一個database或者一個表的情況。怎么解決呢? 一、利用全備恢復一個庫(database)的數據 案例:朋友在群里問, MySQL全庫備份…

memory動態內存管理學習之weak_ptr

此頭文件是動態內存管理庫的一部分。std::weak_ptr 是一種智能指針&#xff0c;它持有對被 std::shared_ptr 管理的對象的非擁有性&#xff08;“弱”&#xff09;引用。在訪問所引用的對象前必須先轉換為 std::shared_ptr。std::weak_ptr 用來表達臨時所有權的概念&#xff1a…

three.js實現雪花場景效果

點擊獲取雪花圖片素材 提取碼:lywa // 雪花效果 import * as THREE from "three" export function getsnowEffect(th) {console.log(th, th) // this 場景var that th// 創建一個BufferGeometry對象&#xff0c;用于存儲頂點數據 const geometry new THREE.Buffe…

Vim神兵:精通自定義補全規則

標題&#xff1a;Vim神兵&#xff1a;精通自定義補全規則 摘要 Vim作為Linux上最強大的文本編輯器之一&#xff0c;其補全功能可以極大提高編碼效率。本文將詳細探討如何在Vim中自定義補全規則&#xff0c;包括基本的補全設置、使用Vim腳本擴展補全功能&#xff0c;以及如何利…

大模型微調實戰之基于星火大模型的群聊對話分角色要素提取挑戰賽:Task01:跑通Baseline

目錄 0 背景1 環境配置1.1 下載包1.2 配置密鑰1.3 測試模型 2 解決問題2.1 獲取數據2.2 設計Prompt2.2 設計處理函數2.3 開始提取 附全流程代碼 0 背景 Datawhale AI夏令營第二期開始啦&#xff0c;去年有幸參與過第一期&#xff0c;收獲很多&#xff0c;這次也立馬參與了第二…

VMware ESXi 技術

目錄 一、VMware ESXi安裝 1. 在VMware WorkStation中創建一臺虛擬機 2. 進入VMware ESXi控制臺 3. 配置VMware ESXi網絡 二、使用Web網頁端登錄管理ESXi 1. 分配許可證密鑰&#xff08;選做&#xff09; 2. 管理ESXi 三、VMware ESXi控制臺 1. 創建虛擬機 2. 定制虛擬…

Webpack: 開發 PWA、Node、Electron 應用

概述 毋庸置疑&#xff0c;對前端開發者而言&#xff0c;當下正是一個日升月恒的美好時代&#xff01;在久遠的過去&#xff0c;Web 頁面的開發技術鏈條非常原始而粗糙&#xff0c;那時候的 JavaScript 更多用來點綴 Web 頁面交互而不是用來構建一個完整的應用。直到 2009年5月…

LINUX操作系統:Mx Linux,用虛擬機VMware Workstation安裝體驗

需求說明&#xff1a; 操作系統目前流行有Windows、Linux、Unix等&#xff0c;中國人應該要知道國有操作系統&#xff0c;也要支持國產操作系統&#xff0c;為了更好支持國產操作系統&#xff0c;我們也要知己知彼&#xff0c;那么今天就來體驗一把操作系統Mx_Linux_23.2的安裝…

分享一個下載windows系統鏡像包的網站

下載各種操作系統&#xff08;比如Windows、Linux、MacOS等&#xff09;比較快的鏡像站點&#xff0c;我嘗試過這個不錯&#xff0c;提供了BT連接&#xff0c;可以用迅雷軟件下載&#xff0c;速度很快的&#xff01; 入口地址&#xff1a;NEXT, ITELLYOU 1&#xff09;打開網站…

[XYCTF新生賽2024] pwn

用了一周來復現crypto部分(不能算是復現&#xff0c;拿著 糖醋小雞塊的WP一點點學了下)。 兩天時間復現PWN部分。相對來說PWN比密碼這塊要簡單&#xff0c;不過ARM,MIPS懶得學了&#xff0c;跳過。 malloc_flag 題目先打開flag將建0x100的塊&#xff0c;然后把flag讀入再fre…

[深度學習] Transformer

Transformer是一種深度學習模型&#xff0c;最早由Vaswani等人在2017年的論文《Attention is All You Need》中提出。它最初用于自然語言處理&#xff08;NLP&#xff09;任務&#xff0c;但其架構的靈活性使其在許多其他領域也表現出色&#xff0c;如計算機視覺、時間序列分析…

MySQL高級-SQL優化- limit優化(覆蓋索引加子查詢)

文章目錄 0、limit 優化0.1、從表 tb_sku 中按照 id 列進行排序&#xff0c;然后跳過前 9000000 條記錄0.2、通過子查詢獲取按照 id 排序后的第 9000000 條開始的 10 條記錄的 id 值&#xff0c;然后在原表中根據這些 id 值獲取對應的完整記錄 1、上傳5個sql文件到 /root2、查看…

libctk shared library的設計及編碼實踐記錄

一、引言 1.1 <libctk>的由來 1.2 <libctk>的設計理論依據 1.3 <libctk>的設計理念 二、<libctk>的依賴庫 三、<libctk>的目錄說明 四、<libctk>的功能模塊及使用實例說明 4.1 日志模塊 4.2 mysql client模塊 4.3 ftp client模塊 4…

鴻蒙開發設備管理:【@ohos.geolocation (位置服務)】

位置服務 說明&#xff1a; 本模塊首批接口從API version 7開始支持。后續版本的新增接口&#xff0c;采用上角標單獨標記接口的起始版本。 導入模塊 import geolocation from ohos.geolocation;geolocation.on(‘locationChange’) on(type: ‘locationChange’, request: L…

安卓開發自定義時間日期顯示組件

安卓開發自定義時間日期顯示組件 問題背景 實現時間和日期顯示&#xff0c;左對齊和對齊兩種效果&#xff0c;如下圖所示&#xff1a; 問題分析 自定義view實現一般思路&#xff1a; &#xff08;1&#xff09;自定義一個View &#xff08;2&#xff09;編寫values/attrs.…