SpringBoot3和SpringBoot2分別整合knife4j(openApi)

文章目錄

  • 一、SpringBoot2進行整合knife4j
    • 1.1 導入依賴
    • 1.2 配置knife4j 配置文件
    • 1.3 可以在接口上配置 注解進行信息的配置
  • 二、SpringBoot3 整合kinfe4j(openApi)
    • 2.1 導入依賴
    • 2.2 yaml配置文件
    • 2.3 swagger初始化配置
    • 2.4 創建接口

一、SpringBoot2進行整合knife4j

1.1 導入依賴

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

1.2 配置knife4j 配置文件

package com.ds.common.knife4j; //com.atguigu.common.config.knife4j;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;import java.util.ArrayList;
import java.util.List;/**
* knife4j配置信息
*/
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {@Beanpublic Docket adminApiConfig(){List<Parameter> pars = new ArrayList<>();ParameterBuilder tokenPar = new ParameterBuilder();tokenPar.name("token").description("用戶token").defaultValue("").modelRef(new ModelRef("string")).parameterType("header").required(false).build();pars.add(tokenPar.build());//添加head參數endDocket adminApi = new Docket(DocumentationType.SWAGGER_2).groupName("adminApi").apiInfo(adminApiInfo()).select()//只顯示admin路徑下的頁面.apis(RequestHandlerSelectors.basePackage("com.ds")).paths(PathSelectors.regex("/admin/.*"))  // "/admin/.*".build().globalOperationParameters(pars);return adminApi;}private ApiInfo adminApiInfo(){return new ApiInfoBuilder().title("后臺管理系統-API文檔").description("本文檔描述了后臺管理系統微服務接口定義").version("1.0").contact(new Contact("DS-ERP", "http://DS.com", "DS@qq.com")).build();}}

1.3 可以在接口上配置 注解進行信息的配置

package com.ds.process.controller;import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ds.common.result.Result;
import com.ds.model.vo.process.ProcessQueryVo;
import com.ds.model.vo.process.ProcessVo;
import com.ds.process.service.OaProcessService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/*** <p>* 審批類型 前端控制器* </p>**/
@Api("審批頁面")
@RestController
@RequestMapping(value = "/admin/process")
public class OaProcessController {@Autowiredprivate OaProcessService processService;//審批管理列表@ApiOperation(value = "獲取分頁列表")@GetMapping("{page}/{limit}")public Result index(@PathVariable Long page,@PathVariable Long limit,ProcessQueryVo processQueryVo) {Page<ProcessVo> pageParam = new Page<>(page,limit);IPage<ProcessVo> pageModel =processService.selectPage(pageParam,processQueryVo);return Result.ok(pageModel);}
}

二、SpringBoot3 整合kinfe4j(openApi)

2.1 導入依賴

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.1.0</version>
</dependency>
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>

2.2 yaml配置文件

server:port: 8080
# springdoc-openapi項目配置,訪問地址:http://127.0.0.1:8080/doc.html
springdoc:swagger-ui:path: /swagger-ui.htmltags-sorter: alphaoperations-sorter: alphaapi-docs:path: /v3/api-docsgroup-configs:- group: 'default'paths-to-match: '/**'packages-to-scan: com.hexadecimal.example# knife4j的增強配置,不需要增強可以不配
knife4j:enable: truesetting:language: zh_cn# Logger Config
logging:level:com.hexadecimal: debug
  1. springdoc.swagger-ui.path配置UI界面的訪問路徑。
  2. knife4j.enable是否開啟增強配置。
  3. 配置項目的日志級別為debug。

2.3 swagger初始化配置

@Configuration
public class SwaggerConfig {@Beanpublic OpenAPI springShopOpenAPI() {return new OpenAPI().info(new Info().title("十六進制說").description("十六進制說API文檔").version("v1").license(new License().name("Apache 2.0").url("http://springdoc.org"))).externalDocs(new ExternalDocumentation().description("外部文檔").url("https://springshop.wiki.github.org/docs"));}}

2.4 創建接口

@Tag(name = "用戶管理")
@RestController
@Slf4j
public class UserController {@Operation(summary = "查詢")@GetMapping("query")public UserDO query(@Parameter(name = "name", description = "名稱") String name) {UserDO userDO = new UserDO();userDO.setName(name);return userDO;}@Operation(summary = "列表")@PostMapping("list")public List<UserDO> list() {return new ArrayList<UserDO>();}@Operation(summary ="新增")@PostMapping("add")public UserDO add(UserDO userDO) {return new UserDO();}@Operation(summary ="修改")@PostMapping("update")public UserDO update(UserDO userDO) {return new UserDO();}@Operation(summary ="刪除")@PostMapping("delete")public Boolean delete(Integer id) {return true;}
}

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

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

相關文章

【云原生】kubernetes核心組件

引言&#xff1a; Kubernetes 是為運行分布式集群而建立的&#xff0c;分布式系統的本質使得網絡成為 Kubernetes 的核心和必要組成部分&#xff0c;了解 Kubernetes 網絡模型可以使你能夠正確運行、監控和排查應用程序故障。 一、Kubernetes的核心組件 1.1、Master組件 1.1.…

基于Springboot+Vue的Java項目-農產品直賣平臺系統開發實戰(附演示視頻+源碼+LW)

大家好&#xff01;我是程序員一帆&#xff0c;感謝您閱讀本文&#xff0c;歡迎一鍵三連哦。 &#x1f49e;當前專欄&#xff1a;Java畢業設計 精彩專欄推薦&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python畢業設計 &am…

Kubernetes之Headless Services

Kubernetes中的Headless Services&#xff08;無頭服務&#xff09;是一種特殊類型的服務&#xff08;Service&#xff09;定義&#xff0c;它不提供傳統意義上的負載均衡和集群IP地址分配。在無頭服務中&#xff0c;spec.clusterIP 字段被顯式設置為None &#xff0c;Kubernet…

可道云teamOS企業網盤實用插件介紹:實時在線流程圖編輯與分享,用在線流程圖打造數字化工作流程

在使用企業網盤用于日常辦公的情況下&#xff0c;有一些實用的在線小工具能為團隊效率和協作帶來一定的提升。 今天要給大家介紹的可道云teamOS的在線畫流程圖&#xff0c;是很值得介紹的一個在線工具。 在線流程圖&#xff1a;直觀展示&#xff0c;高效便捷 以往我們想要梳理…

FANUC機器人單軸零點標定時提示無法執行零點標定,由于重力補償已啟用,所有機器人軸的脈沖計數必須有效

FANUC機器人單軸零點標定時提示無法執行零點標定,由于重力補償已啟用,所有機器人軸的脈沖計數必須有效 首先,機器人由于長時間斷電未使用,6個軸的編碼器數據全部丟失,上電后報警SRVO-062, 有關SRVO-062故障報警的相關內容可參考以下鏈接: FANUC機器人SRVO-062報警原因分…

LeetCode 2391. 收集垃圾的最少總時間

Problem: 2391. 收集垃圾的最少總時間 問題分解 我們將這個問題分解為以下幾個小問題&#xff1a; 計算每種垃圾&#xff08;金屬、紙、玻璃&#xff09;在每個房子中的數量。確定每種垃圾車最后到達的房子。計算每種垃圾車行駛的總時間。計算每種垃圾車收拾垃圾的總時間。返…

SQLite 語法大全

SQLite EXPLAIN 語句&#xff1a; EXPLAIN INSERT statement...; or EXPLAIN QUERY PLAN SELECT statement...; SQLite GLOB 子句&#xff1a; SELECT column1, column2....columnN FROM table_name WHERE column_name GLOB { PATTERN }; SQLite GROUP BY 子句&#xff1…

journalctl參數詳解

journalctl 是 Systemd 日志管理工具&#xff0c;用于查看、查詢和管理 Systemd 系統日志。 #-x: 詳細模式&#xff08;Verbose&#xff09;。這個選項會使 journalctl 輸出完整的日志消息&#xff0c;包括其原始結構&#xff0c;如嵌套的JSON消息、未展開的環境變量等。這對于…

Scratch四級:第08講 排序算法

第08講 排序算法 教練&#xff1a;老馬的程序人生 微信&#xff1a;ProgrammingAssistant 博客&#xff1a;https://lsgogroup.blog.csdn.net/ 講課目錄 常考的排序算法項目制作&#xff1a;“三個數排序”項目制作&#xff1a;“成績查詢”項目制作&#xff1a;“排序”項目制…

單片機智能燈控制系統源程序仿真原理圖與論文全套資料

目錄 1、設計描述 2、仿真圖 3、程序 4、資料內容 資料下載地址&#xff1a;單片機智能燈控制系統源程序仿真原理圖與論文全套資料下載 1、設計描述 設計了一款智能控制系統。 AT89C51LCD1602DS1302按鍵LED組成了這樣一個完整的設計。 P2.0-P2.3 4個LED等代表庭院內的4…

計算機視覺——Opencv blobFromImage與torchvision實現數據標準化

1.blobFromImage blobFromImage 是 OpenCV 的深度神經網絡&#xff08;DNN&#xff09;模塊中的一個函數&#xff0c;它用于將圖像轉換為深度學習模型所需的輸入格式&#xff0c;主要是對傳入的圖像進行的轉換包括圖像尺寸調整、均值減法、縮放等預處理步驟&#xff0c;以便圖…

架構設計之學新而知故

緣由 因為一些特殊的機緣&#xff0c;接觸到洋蔥架構等一些新架構設計概念。 嘗試理解了一段時間&#xff0c;就想簡單梳理下對它們的理解&#xff0c;以達到學新而知故 &#x1f603; 信息增益 以前計算機專業并不設置通信領域的信息論的專業課程&#xff0c;但是&#xf…

輸出指定日期區間內的所有天、周、月

hutool獲取指定時間周幾 Slf4j public class DateWeekUtil {public static List<String> getDateWeek(String startDateString, String endDateString, List<Integer> codeList) {List<String> dateInfoList new ArrayList<>();List<Integer> v…

工作隨機:linux 掛載LVM管理模式的磁盤

文章目錄 前言一、創建一個分區二、創建PV三、創建VG四、創建LV五、格式化并掛載目錄 前言 在數據庫管理中&#xff0c;常有比較頭疼的問題&#xff0c;就是一段時間發展后我的磁盤空間不夠了&#xff0c;想要擴容原有的目錄很是頭疼&#xff0c;那么LVM管理的優勢就體現出來了…

JAVA學習-練習試用Java實現改寫字符串

問題&#xff1a; 鍵盤錄入一個字符串&#xff0c;將字符串中的大寫改成小寫&#xff0c;小寫改成大寫&#xff0c;數字改成。例如heLLO123,輸出后為HEllo** 解答思路&#xff1a; import java.util.Scanner;public class StringConversion {public static void main(String…

單元測試之JUnit5知識點總結及代碼示例

單元測試是軟件開發過程中的一種驗證手段&#xff0c;它針對最小的可測試部分&#xff08;通常是函數或方法&#xff09;進行檢查和驗證。其實單元測試還是挺重要的&#xff0c;不過國內很多公司的項目其實并沒有做好單元測試&#xff0c;或者根本就沒做單元測試&#xff0c;原…

英語復習之英語形近詞總結(四)

英語形近詞總結復習第四部分&#xff1a; 單詞 釋義例句 genuine 英 /?d?enju?n/ 美 /?d?enju?n/ adj.真實的&#xff0c;真正的&#xff1b;誠懇的 1.Only genuine refugees can apply for asylum. 只有真正的難民才能申請政治避難。 《牛津詞典》 2.This isnt a genui…

C++筆試強訓day19

目錄 1.小易的升級之路 2.禮物的最大價值 3.對稱之美 1.小易的升級之路 鏈接 模擬就行&#xff0c;唯一可能是難點得就是gcd&#xff08;最大公約數&#xff09; #include <iostream> using namespace std; #define int long long const int N 1e5 10; int arr[N];…

兒童懸吊訓練系統如何進行制動肌的動力訓練

兒童懸吊訓練系統進行制動肌的動力訓練&#xff0c;可以按照以下步驟進行&#xff1a; 評估&#xff1a;首先&#xff0c;治療師需要對兒童的制動肌進行評估&#xff0c;確定其穩定性和力量水平&#xff0c;從而制定合適的訓練計劃。 選擇訓練方式&#xff1a;根據評估結果&am…

利用IP地址查詢解決被“薅羊毛”的方法

在互聯網時代&#xff0c;隨著各種網絡詐騙手段的不斷更新和演變&#xff0c;“薅羊毛”成為了一種常見的網絡犯罪行為。其中&#xff0c;利用查詢IP地址進行欺詐活動已經成為一種普遍的手段。當個人或組織的IP地址被不法分子查詢后&#xff0c;可能會面臨虛假注冊、盜取個人信…