.NET中的Swagger使用示例詳解
前言
現(xiàn)在很多項目都是前后端分離的項目,后端寫好接口跟前端對接,需要后端提供接口文檔、參數(shù)等注釋,這上面花時間著這些東西,接口修改又要去修改文檔,很不方便前后端人員開發(fā)
一、Swagger是什么?
Swagger (OpenAPI) 是一個與語言無關的規(guī)范,用于描述 REST API。
OpenAPI 與 Swagger關系
Swagger 項目已于 2015 年捐贈給 OpenAPI 計劃,自此它被稱為 OpenAPI,這兩個名稱可互換使用。 不過,“OpenAPI”指的是規(guī)范。
簡而言之:
OpenAPI 是一種規(guī)范。
Swagger 是一種使用 OpenAPI 規(guī)范的工具。 例如,OpenAPIGenerator 和 SwaggerUI。
目前從NETCore從3.1起已經(jīng)集成Sawwger,無需再去引用庫,創(chuàng)建項目后運行API項目自動Sawwger接口文檔的頁面
介紹大家可能會關注的一些點
二、如何Swagger文檔說明的信息

1.在AddSwaggerGen方法中寫入文檔信息
代碼如下(示例):
builder.Services.AddSwaggerGen(options =>
{
//諸如作者、文檔說明的信息
options.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "我的API",
Description = "這是我的netcoreAPI項目",//描述信息
Contact = new OpenApiContact
{
Name = "我是小小魚",
Url = new Uri("https://blog.csdn.net/qq_42335551")
}
});2.運行效果
如圖(示例):

二、文檔UI界面標題、路由設置
如何修改標簽頁的名、和地址要怎么修改呢

1.在中間件UseSwaggerUI方法中配置
app.UseSwagger();
app.UseSwaggerUI(c => {
c.DocumentTitle = "后臺接口列表"; //標簽頁標題
c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模塊");//接口文檔json文件
c.RoutePrefix =string.Empty;// 注:這里的路由修改后,launchSettings.json中的launchUrl對應需要調(diào)整為""
});在次啟動項目 已經(jīng)變成修改后的標簽頁和地址

三、文檔UI界面添加接口注釋
如何添加接口的注釋呢

1.在 .csproj中配置
在解決方案資源管理器中右鍵單擊該項目。
將 GenerateDocumentationFile 添加到 .csproj 文件中PropertyGroup節(jié)點下
<GenerateDocumentationFile>true</GenerateDocumentationFile>
2.在AddSwaggerGen方法中配置IncludeXmlComments
代碼如下(示例):
builder.Services.AddSwaggerGen(options =>
{
//諸如作者、文檔說明的信息
options.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "我的API",
Description = "這是我的netcoreAPI項目",//描述信息
Contact = new OpenApiContact
{
Name = "我是小小魚",
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 顯示控制器注釋
});運行效果,已經(jīng)顯示出我們的注釋

可以在控制器、參數(shù)、實體類增加注釋后,再次運行都有顯示

四、對接口進行分組
1.在AddSwaggerGen、UseSwaggerUI分別添加如下信息
例如
options.SwaggerDoc("yw", new OpenApiInfo { Title = "業(yè)務模塊", Version = "yw" });
options.SwaggerDoc("qt", new OpenApiInfo { Title = "其他模塊", Version = "qt" });例如
c.SwaggerEndpoint("/swagger/v1/swagger.json", "公共模塊");//接口文檔json文件
c.SwaggerEndpoint("/swagger/yw/swagger.json", "業(yè)務模塊");
c.SwaggerEndpoint("/swagger/qt/swagger.json", "其他模塊");
c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);//接口不展開None2.在controller或者action上打上ApiExplorerSettings特性
例如[ApiExplorerSettings(GroupName = "v1")]

總結(jié)
有Sawwger有利于前后端開發(fā)人員接口的對接,調(diào)試,功能上挺豐富的,簡單的寫了以上幾點
到此這篇關于.NET中的Swagger使用的文章就介紹到這了,更多相關.NET Swagger使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
asp.net內(nèi)置對象 Response對象使用介紹
這篇文章主要介紹了asp.net內(nèi)置對象:Response對象使用介紹,對Response對象感興趣的小伙伴們可以參考一下2015-11-11
.Net之微信小程序獲取用戶UnionID的實現(xiàn)
這篇文章主要介紹了.Net之微信小程序獲取用戶UnionID的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
.NET Core單文件發(fā)布靜態(tài)編譯AOT CoreRT的方法詳解
這篇文章主要給大家介紹了關于.NET Core單文件發(fā)布靜態(tài)編譯AOT CoreRT的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07

