.NET中的Swagger使用示例詳解
前言
現(xiàn)在很多項(xiàng)目都是前后端分離的項(xiàng)目,后端寫(xiě)好接口跟前端對(duì)接,需要后端提供接口文檔、參數(shù)等注釋,這上面花時(shí)間著這些東西,接口修改又要去修改文檔,很不方便前后端人員開(kāi)發(fā)
一、Swagger是什么?
Swagger (OpenAPI) 是一個(gè)與語(yǔ)言無(wú)關(guān)的規(guī)范,用于描述 REST API。
OpenAPI 與 Swagger關(guān)系
Swagger 項(xiàng)目已于 2015 年捐贈(zèng)給 OpenAPI 計(jì)劃,自此它被稱為 OpenAPI,這兩個(gè)名稱可互換使用。 不過(guò),“OpenAPI”指的是規(guī)范。
簡(jiǎn)而言之:
OpenAPI 是一種規(guī)范。
Swagger 是一種使用 OpenAPI 規(guī)范的工具。 例如,OpenAPIGenerator 和 SwaggerUI。
目前從NETCore從3.1起已經(jīng)集成Sawwger,無(wú)需再去引用庫(kù),創(chuàng)建項(xiàng)目后運(yùn)行API項(xiàng)目自動(dòng)Sawwger接口文檔的頁(yè)面
介紹大家可能會(huì)關(guān)注的一些點(diǎn)
二、如何Swagger文檔說(shuō)明的信息
1.在AddSwaggerGen方法中寫(xiě)入文檔信息
代碼如下(示例):
builder.Services.AddSwaggerGen(options => { //諸如作者、文檔說(shuō)明的信息 options.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "我的API", Description = "這是我的netcoreAPI項(xiàng)目",//描述信息 Contact = new OpenApiContact { Name = "我是小小魚(yú)", Url = new Uri("https://blog.csdn.net/qq_42335551") } });
2.運(yùn)行效果
如圖(示例):
二、文檔UI界面標(biāo)題、路由設(shè)置
如何修改標(biāo)簽頁(yè)的名、和地址要怎么修改呢
1.在中間件UseSwaggerUI方法中配置
app.UseSwagger(); app.UseSwaggerUI(c => { c.DocumentTitle = "后臺(tái)接口列表"; //標(biāo)簽頁(yè)標(biāo)題 c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模塊");//接口文檔json文件 c.RoutePrefix =string.Empty;// 注:這里的路由修改后,launchSettings.json中的launchUrl對(duì)應(yīng)需要調(diào)整為"" });
在次啟動(dòng)項(xiàng)目 已經(jīng)變成修改后的標(biāo)簽頁(yè)和地址
三、文檔UI界面添加接口注釋
如何添加接口的注釋呢
1.在 .csproj中配置
在解決方案資源管理器中右鍵單擊該項(xiàng)目。
將 GenerateDocumentationFile 添加到 .csproj 文件中PropertyGroup節(jié)點(diǎn)下
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2.在AddSwaggerGen方法中配置IncludeXmlComments
代碼如下(示例):
builder.Services.AddSwaggerGen(options => { //諸如作者、文檔說(shuō)明的信息 options.SwaggerDoc("v1", new OpenApiInfo { Version = "v1", Title = "我的API", Description = "這是我的netcoreAPI項(xiàng)目",//描述信息 Contact = new OpenApiContact { Name = "我是小小魚(yú)", Url = new Uri("https://blog.csdn.net/qq_42335551") } }); var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);//true 顯示控制器注釋 });
運(yùn)行效果,已經(jīng)顯示出我們的注釋
可以在控制器、參數(shù)、實(shí)體類增加注釋后,再次運(yùn)行都有顯示
四、對(duì)接口進(jìn)行分組
1.在AddSwaggerGen、UseSwaggerUI分別添加如下信息
例如
options.SwaggerDoc("yw", new OpenApiInfo { Title = "業(yè)務(wù)模塊", Version = "yw" }); options.SwaggerDoc("qt", new OpenApiInfo { Title = "其他模塊", Version = "qt" });
例如
c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模塊");//接口文檔json文件 c.SwaggerEndpoint("/swagger/yw/swagger.json", "業(yè)務(wù)模塊"); c.SwaggerEndpoint("/swagger/qt/swagger.json", "其他模塊"); c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);//接口不展開(kāi)None
2.在controller或者action上打上ApiExplorerSettings特性
例如[ApiExplorerSettings(GroupName = "v1")]
總結(jié)
有Sawwger有利于前后端開(kāi)發(fā)人員接口的對(duì)接,調(diào)試,功能上挺豐富的,簡(jiǎn)單的寫(xiě)了以上幾點(diǎn)
到此這篇關(guān)于.NET中的Swagger使用的文章就介紹到這了,更多相關(guān).NET Swagger使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
.NET Core 實(shí)現(xiàn)微信小程序支付功能(統(tǒng)一下單)
最近公司研發(fā)了幾個(gè)電商小程序,還有一個(gè)核心的電商直播,只要是電商一般都會(huì)涉及到交易信息,離不開(kāi)支付系統(tǒng),這里我們統(tǒng)一實(shí)現(xiàn)小程序的支付流程。感興趣的朋友跟隨小編一起看看吧2019-09-09.NET更新Xml中CDATA內(nèi)容的方法實(shí)例
這篇文章介紹了.NET更新Xml中CDATA內(nèi)容的方法實(shí)例,有需要的朋友可以參考一下2013-07-07ASP.NET JSON字符串與實(shí)體類的互轉(zhuǎn)換示例代碼
本篇文章主要是對(duì)ASP.NET JSON字符串與實(shí)體類的互轉(zhuǎn)換的示例代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01asp.net core下給網(wǎng)站做安全設(shè)置的方法詳解
這篇文章主要給大家介紹了關(guān)于asp.net core下給網(wǎng)站做安全設(shè)置的相關(guān)資料,文章通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07ASP.NET MVC中為DropDownListFor設(shè)置選中項(xiàng)的方法
這篇文章主要介紹了ASP.NET MVC中為DropDownListFor設(shè)置選中項(xiàng)的方法,需要的朋友可以參考下2014-10-10