溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的

發(fā)布時(shí)間:2021-12-13 19:00:30 來(lái)源:億速云 閱讀:202 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

前言

通過(guò)Swagger插件可以很方便的提供給接口開(kāi)發(fā)者在線調(diào)試,但是實(shí)際上Swagger附帶的功能還有很多,

比如使用NSwag生成客戶端調(diào)用代碼,進(jìn)一步解放接口開(kāi)發(fā)者。

NSwag 

NSwag是一個(gè)發(fā)布在GitHub上的開(kāi)源項(xiàng)目,它可以根據(jù)Swagger說(shuō)明頁(yè)上的swagger.json文件生成C#、TypeScript客戶端代碼。

NSwag的項(xiàng)目地址:https://github.com/RSuter/NSwag

Nswag提供4種代碼生成方法

1、使用 NSwagStudio,這是一款 Windows 桌面應(yīng)用,用于在 C# 和 TypeScript 中為 API 生成客戶端代碼。

2、使用 NSwag.CodeGeneration.CSharp 或 NSwag.CodeGeneration.TypeScript NuGet 包在項(xiàng)目中執(zhí)行代碼生成。

3、使用命令行中的 NSwag。

4、使用 NSwag.MSBuild NuGet 包。

這里推薦使用NSwagStudio,可以從GitHub上下載該工具,地址:https://github.com/RSuter/NSwag/wiki/NSwagStudio

下載后開(kāi)始安裝,安裝完畢后打開(kāi)NSwagStudio,如下圖,在左側(cè)選擇Tab頁(yè)菜單里選擇Documents

.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的

如上圖框框選中的幾點(diǎn),我們需要留意。其中Swagger Specification URL就是我們WebAPI的swagger.json的在線地址。

如果點(diǎn)擊【Create local Copy 】按鈕時(shí)你的WebAPI未在線則代碼生成工具會(huì)彈出錯(cuò)誤對(duì)話框,如下圖:

.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的

 所以采取讀取Swagger Specification URL 方式進(jìn)行生成代碼的前提條件是你必須保證swagger.json文件能在線讀??!

 其次你可以選擇RunTime(運(yùn)行時(shí)),這里應(yīng)該是服務(wù)端WebAPI的運(yùn)行時(shí)(畢竟TypeScript是不關(guān)心你服務(wù)端是.NET Core還是.NET Framework).

因?yàn)槲业沫h(huán)境是.NET Core2.1,所以這里選擇NET Core21。

接下來(lái),點(diǎn)擊【Create local Copy】按鈕,點(diǎn)擊后NSwagStudio會(huì)與WebAPI服務(wù)端進(jìn)行交互,成功后會(huì)將swagger.json文件格式化到左邊的文本編輯器中,如下圖:

.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的

此時(shí),你可以在右側(cè)的Outputs中勾選你需要輸出的文件格式,這里我選擇TypeScript和CSharp Client,

這個(gè)地方有個(gè)C# WebAPI Controller,我有點(diǎn)納悶,我都有swagger.json文件了絕壁是已經(jīng)存在webapi了,

沒(méi)有必要反向再去生成一遍webapi的控制器啦。 不懂,反正只管生成客戶端代碼就好。

我們勾選好后下面就會(huì)出現(xiàn)相應(yīng)的輸出配合頁(yè)面,如下圖:

.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的

 我們選擇CSharp Client頁(yè)面,該頁(yè)面左側(cè)分為Setting和Output兩個(gè)頁(yè)面,Setting頁(yè)可以對(duì)輸出的cs文件進(jìn)行配置,如命名空間、類名稱、輸出文件路徑等等(很多配置我也不會(huì)....)

我們點(diǎn)擊【Generate Outputs】后NSwagStudio會(huì)根據(jù)配置生成客戶端操作類,在Output頁(yè)面即可檢查,檢查無(wú)誤后再點(diǎn)擊【Generate Files】可將類文件導(dǎo)出到配置的輸出目錄。

TypeScript亦是如此,同時(shí)NSwagStudio也可支持加載DLL反射生成,具體方法可根據(jù)官網(wǎng)操作(畢竟可以直接使用json文件在線生成沒(méi)必要再自己手工選擇dll..)

這里截圖看SwagerUI頁(yè)和NSwagStudio生成后的客戶端cs文件

.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的

上述內(nèi)容就是.NetCore2.1 WebAPI根據(jù)swagger.json自動(dòng)生成客戶端代碼是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI