AspNetCore 中使用 Knife4jUI 更加友好的Swagger界面

🚀介紹

aspnetcore.knife4j是一個基于.NET Core平臺的Swagger UI庫,它提供了API文檔的生成和管理功能。這個庫的前身是swagger-bootstrap-ui,在Java項目中廣泛使用,由于其優秀的界面和易用性被許多開發者所推崇。現在,aspnetcore.knife4j已經被集成到了.NET Core 3.0+和.NET Standard 2.0中。

通過使用aspnetcore.knife4j,開發者可以為自己的應用生成API文檔,從而可以更方便地基于API文檔進行測試。生成的文檔還可以導出,然后提供給前端開發團隊,前端開發團隊可以根據這些API接口編寫具體的調用代碼。這不僅提高了開發效率,也有助于提高項目的可維護性和可讀性。

此外,knife4j還提供了許多增強擴展功能,如自定義文檔、動態參數調試、I18n、接口排序、導出等。

🚀案例

🍀創建一個Asp.net Core 的webApi項目,debug啟動,這是官方默認使用的swagger界面

🍀首先,安裝nuget包

Package Manager : Install-Package Swashbuckle.AspNetCore.Swagger
Install-Package Swashbuckle.AspNetCore.SwaggerGen
Install-Package IGeekFan.AspNetCore.Knife4jUIORCLI :dotnet add package Swashbuckle.AspNetCore.Swagger
dotnet add package Swashbuckle.AspNetCore.SwaggerGen
dotnet add package IGeekFan.AspNetCore.Knife4jUI

🍀因為創建的是webApi項目,已經自帶了前兩個包,因此只需要安裝第三個

🍀安裝完成后在Program中找到原來的Swagger請求管道

app.UseSwaggerUI(); 換成以下代碼

    app.UseKnife4UI(p =>{p.SwaggerEndpoint("/swagger/v1/swagger.json", "測試");p.RoutePrefix = ""; // 路由前綴});

🍀 然后將 launchSettings.json 文件中的 "launchUrl" 值設置為空,這樣當項目啟動的時候,就會直接跳轉到當前項目的applicationUrl

🍀此時啟動項目,swagger界面就是下面這樣了

🍀 在Controller中添加一個測試接口

/// <summary>
/// 測試控制器
/// </summary>
// [ApiController]
[Route("[controller]/[action]")]
public class TestController : ControllerBase
{/// <summary>/// 測試/// </summary>/// <returns></returns>[HttpGet]public OkResult Test(){return Ok();}
}

🍀在項目屬性中勾選生成XML Documentation文檔

?或者

🍀編輯項目的.csproj文件,在文件中插入

    <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "><DocumentationFile>bin\Debug\WebApplication.xml</DocumentationFile></PropertyGroup>

這樣在?Debug 模式下編譯 .NET 項目時,指定生成一個名為 ***.xml?的 XML 文檔文件,該文件包含了項目源代碼中的文檔注釋?,這些注釋用于生成 API 文檔或者提供 IntelliSense 功能時的描述信息。

🍀此時重啟項目,我們的接口功能描述信息就變成在項目中寫的 ///注釋

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

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

相關文章

LV.13 D2 開發板啟動流程 學習筆記

一、開發板啟動過程 EMMC&#xff1a;相當于電腦的外存&#xff0c;斷電不丟失 開發板上電后首先運行SOC內部iROM中固化的代碼(BL0)&#xff0c;這段代碼先對基本的軟硬件環境(時鐘等...)進行初始化&#xff0c;然后再檢測撥碼開關位置獲取啟動方式&#xff0c;然后再將對應存儲…

基于SSM+MySQL學生宿舍管理系統的設計與實現(源碼+數據庫+文檔)

摘 要 近年來&#xff0c;隨著計算機技術的不斷發展和運用&#xff0c;許多實際問題都得到了較好地解決。隨著現代社會對企業經營的需求日益增長&#xff0c;企業的無紙辦公也逐漸得到了推廣。本學生宿舍管理系統的設計開發&#xff0c;目標就是解決宿舍管理復雜的人為管理&a…

PHP變量用{}的使用方法

{} 可以將變量名稱作為一個整體使用 "666666".$id."888888"; //可以簡化為如下 "666666{$id}888888"; //當然$id也可以用$ids[$id] 參考&#xff1a; PHP 大括號{} 的使用_php 函數放在{}-CSDN博客

[23] Self-conditioned Image Generation via Generating Representations

[paper | code] 用生成對象本身作為控制信號&#xff0c;實現無條件圖像生成。訓練階段。Step1&#xff1a;用預訓練模型&#xff08;例如&#xff1a;Moco v3&#xff09;提取生成對象的特征編碼&#xff1b;Step2&#xff1a;基于特征編碼&#xff0c;訓練一個擴散模型RDM&a…

pycharm手動安裝包

1.下載對應的包 TTS PyPI 2.手動解壓&#xff0c;找到文件放到pycharm對應項目的lib文件夾中 以TTS包為例&#xff0c;找到下載并解壓的包中的2個文件&#xff0c;一個名稱一個info結尾 3.放到項目的lib文件夾中 eg&#xff1a;路徑&#xff1b;C:\doc\myProject\speaker\venv…

前端知識(十四)——淺談用戶體驗測試的主要功能

用戶體驗(User Experience&#xff0c;簡稱UX)在現代軟件和產品開發中變得愈發重要。為了確保產品能夠滿足用戶期望&#xff0c;提高用戶滿意度&#xff0c;用戶體驗測試成為不可或缺的環節。本文將詳細探討用戶體驗測試的主要功能&#xff0c;以及它在產品開發過程中的重要性 …

Android View的 getHeight 和 getMeasuredHeight 的區別

前言 先簡單復習一下Android View 的 繪制順序&#xff1a; 1、onMeasure&#xff08;測量&#xff09;&#xff0c;先根據構造器傳進來的LayoutParams&#xff08;布局參數&#xff09;&#xff0c;測量view寬高。 2、onLayout&#xff08;布局&#xff09;&#xff0c;再根…

SQL進階 | 自連接

概述 SQL的自連接是指在一個SQL表中&#xff0c;使用自身表格中的實例進行聯接并查詢的操作。自連接通常使用別名來標識一個表格&#xff0c;在自連接中&#xff0c;表格被視為兩個不同的表格&#xff0c;并分別用不同的別名來標識。然后&#xff0c;在WHERE子句中使用這些別名…

oracle異常:ORA-03297:文件包含在請求的 RESIZE 值以外使用的數據

出現這個問題&#xff0c;主要是在對表空間擴容的時候&#xff0c;擴容的大小<實際數據文件大小 1、擴容的語句 alter database datafile D:\APP\ADMINISTRATOR\ORADATA\ORCL\USER.DBF resize 2G; 2、若何確定擴容大小是否比實際文件大 根據路徑找到文件&#xff0c;查看…

二十、FreeRTOS之Tickless低功耗模式

本節需要掌握以下內容&#xff1a; 1&#xff0c;低功耗模式簡介&#xff08;了解&#xff09; 2&#xff0c; Tickless模式詳解&#xff08;熟悉&#xff09; 3&#xff0c; Tickless模式相關配置項&#xff08;掌握&#xff09; 4&#xff0c;Tickless低功耗模式實驗&…

自定義異步任務管理器和線程

import com.lancoo.common.utils.Threads; import com.lancoo.common.utils.spring.SpringUtils;import java.util.TimerTask; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;/*** 異步任務管理器* * author lancoo*/ public c…

操作系統大會 openEuler Summit 2023即將召開,亮點不容錯過

【12月11日&#xff0c;北京】數字化、智能化浪潮正奔涌而來。操作系統作為數字基礎設施的底座&#xff0c;已經成為推動產業數字化、智能化發展的核心力量&#xff0c;為數智未來提供無限可能。12月15-16日&#xff0c;以“崛起數字時代 引領數智未來”為主題的操作系統大會 &…

〖Python網絡爬蟲實戰?〗- 極驗滑塊介紹(四)

訂閱&#xff1a;新手可以訂閱我的其他專欄。免費階段訂閱量1000 python項目實戰 Python編程基礎教程系列&#xff08;零基礎小白搬磚逆襲) 說明&#xff1a;本專欄持續更新中&#xff0c;訂閱本專欄前必讀關于專欄〖Python網絡爬蟲實戰〗轉為付費專欄的訂閱說明作者&#xff1…

【ArcGIS Pro微課1000例】0049:根據坐標快速定位(創建點位)的常見方法

文章目錄 一、轉到XY1. 閃爍位置2. 平移3. 標記位置二、定位1. 坐標定位2. 添加到圖形3. 添加至要素類三、添加XY坐標四、創建點要素一、轉到XY 舉例:經緯度坐標:113.2583286東, 23.1492340北 。 1. 閃爍位置 輸入坐標,點擊閃爍位置工具,即可在對應的位置出現一個綠色閃爍…

SQL注入漏洞利用

預計更新SQL注入概述 1.1 SQL注入攻擊概述 1.2 SQL注入漏洞分類 1.3 SQL注入攻擊的危害 SQLMap介紹 2.1 SQLMap簡介 2.2 SQLMap安裝與配置 2.3 SQLMap基本用法 SQLMap進階使用 3.1 SQLMap高級用法 3.2 SQLMap配置文件詳解 3.3 SQLMap插件的使用 SQL注入漏洞檢測 4.1 SQL注入…

shiro入門demo

搭建springboot項目&#xff0c;引入以下依賴&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--單元測試--><depe…

集的增刪操作

集是可以修改的&#xff0c;增加元素可以用add和update函數。刪除可以用pop、discard、remove等函數。 1 增加集里的元素 add函數的參數視為一個整體插入到集里&#xff0c;而update函數傳入的參數是把要傳入的元素拆分&#xff0c;做為個體傳入到集合中。 s set("hell…

.9.png的創建

1、創建.9.png 選中圖片&#xff0c;右擊&#xff0c;選擇Create 9-Patch file&#xff0c;點擊確定會生成一個xxx.9.png的圖片 2、繪制拉伸區域 在圖片的最外邊界繪制拉伸區域&#xff0c;按住鼠標左鍵不放&#xff0c;繪制完成后保存就可以使用了。繪制結果示意如下&…

phpstudy小皮(PHP集成環境)下載及使用

下載 https://www.xp.cn/download.html直接官網下載即可&#xff0c;下載完解壓是個.exe程序&#xff0c;直接點擊安裝就可以&#xff0c;它會自動在D盤目錄為D:\phpstudy_pro 使用 phpMyAdmin是集成的數據庫可視化&#xff0c;這里需要下載一下&#xff0c;在軟件管理-》網站程…

OPPO怎么錄屏?教程來了,讓你成為錄屏達人

“有人知道OPPO怎么錄屏嗎&#xff0c;前陣子剛買的OPPO手機&#xff0c;用起來感覺挺流暢的&#xff0c;功能也很齊全&#xff0c;最近因為工作原因&#xff0c;需要用到錄屏功能&#xff0c;但是我不知道怎么打開&#xff0c;就想問問大伙&#xff0c;OPPO怎么錄屏呀。” 在…