Asp.Net Core使用swagger生成api文檔的完整步驟
前言
.Net Core中有兩個(gè)集成NSwag的包,分別為Swashbuckle和NSwag。兩者的配置大同小異。這里以NSwag為例。
一、前期準(zhǔn)備
1、初始化asp.net core 測(cè)試項(xiàng)目
新建asp.net core項(xiàng)目,此處略過(guò);
新建apicontroller,并編寫(xiě)測(cè)試代碼;
[Route("api/[controller]")]
[ApiController]
public class UserApiController : ControllerBase
{
/// <summary>
/// 獲取用戶信息,根據(jù)用戶id
/// </summary>
/// <param name="id">用戶id</param>
/// <returns></returns>
[HttpGet("getuser/{id}")]
public ActionResult GetUser(int id)
{
User u = new User { Id=1,Name="Jack"};
return Ok(new { ok = true, data = u });
}
/// <summary>
/// 添加用戶
/// </summary>
/// <param name="user">用戶信息</param>
/// <returns></returns>
[HttpPost("postuser")]
public ActionResult AddUser([FromBody]User user)
{
return Ok(new { ok = true, data = user });
}
}
public class User
{
/// <summary>
/// 用戶id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 用戶姓名
/// </summary>
public string Name { get; set; }
}
2、使用nuget安裝 NSwag.AspNetCore
方式一:通過(guò)vs圖形界面安裝;

方式二:通過(guò)nuget 命令安裝:
Install-Package NSwag.AspNetCore

二、配置Swagger
1、添加并配置 Swagger 中間件
在應(yīng)用的Startup類(lèi)中的ConfigureServices 方法中,注冊(cè)所需的 Swagger 服務(wù):
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// Register the Swagger services
services.AddSwaggerDocument()
}
在 Startup類(lèi)中的Configure 方法中,啟用中間件為生成的 Swagger 規(guī)范和 Swagger UI 提供服務(wù):
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
// Register the Swagger generator and the Swagger UI middlewares
app.UseOpenApi();
app.UseSwaggerUi3();
app.UseMvc();
}
啟動(dòng)應(yīng)用。 轉(zhuǎn)到:
http://localhost:/swagger,以查看 Swagger UI。
http://localhost:/swagger/v1/swagger.json,以查看 Swagger 規(guī)范。

2、自定義 API 文檔
API 信息和說(shuō)明
在 Startup.ConfigureServices 方法中,傳遞給 AddSwaggerDocument 方法的配置操作會(huì)添加諸如作者、許可證和說(shuō)明的信息:
public void ConfigureServices(IServiceCollection services)
{
//services.AddControllers();
services.AddControllersWithViews();
services.AddSwaggerDocument(config =>
{
config.PostProcess = document =>
{
document.Info.Version = "v1";
document.Info.Title = "UserManageApp API";
document.Info.Description = "A simple ASP.NET Core web API";
document.Info.TermsOfService = "None";
document.Info.Contact = new NSwag.OpenApiContact
{
Name = "張三",
Email = string.Empty,
Url = "https://example.com"
};
document.Info.License = new NSwag.OpenApiLicense
{
Name = "Use under LICX",
Url = "https://example.com/license"
};
};
});
}
Swagger UI 顯示版本的信息:

XML 注釋
若要啟用 XML 注釋?zhuān)?qǐng)執(zhí)行以下步驟:
以windows先使用vs為例:
- 在“解決方案資源管理器”中右鍵單擊該項(xiàng)目,然后選擇“編輯 .csproj” 。
- 手動(dòng)將突出顯示的行添加到 .csproj 文件 :

三、參考
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-nswag?view=aspnetcore-3.0&tabs=visual-studio
*以上講解知識(shí)入門(mén)級(jí)的,能大體使用起來(lái),能滿足一般性需求;
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
.NET?Core使用Redis實(shí)現(xiàn)創(chuàng)建分布式鎖
分布式鎖一般用于確保在分布式系統(tǒng)中,同一時(shí)間只有一個(gè)進(jìn)程可以執(zhí)行某段代碼,本文將通過(guò).NET?Core使用Redis實(shí)現(xiàn)創(chuàng)建分布式鎖,感興趣的可以了解下2025-01-01
Coolite Cool Study 3 MVC + Coolite 的實(shí)現(xiàn)代碼
啊,開(kāi)始以為MVC+Coolite結(jié)合的例子沒(méi)什么難度,但原來(lái)Coolite在MVC中需要特定設(shè)置一下某些屬性才行,費(fèi)了兩個(gè)小時(shí)才算大功告成,具體請(qǐng)看下文。還是先把這個(gè)例子的效果貼上來(lái)再說(shuō)。2009-05-05
擴(kuò)展ASP.NET MVC三層框架且使用StructureMap實(shí)現(xiàn)依賴注入1-Model層
本篇文章將向大家介紹如何添加Service和Repository層并且使用StructureMap把Service層注入到Controller,把Repository注入到Service層。2013-04-04
ASP.NET?Core中MVC模式實(shí)現(xiàn)路由一
這篇文章介紹了ASP.NET?Core中MVC模式實(shí)現(xiàn)路由的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
高效的使用 Response.Redirect解決一些不必要的問(wèn)題
這篇文章主要介紹了如何高效的使用 Response.Redirect解決一些不必要的問(wèn)題,需要的朋友可以參考下2014-05-05
VS2015自帶LocalDB數(shù)據(jù)庫(kù)用法詳解
這篇文章主要為大家詳細(xì)介紹了VS2015自帶LocalDB數(shù)據(jù)庫(kù)的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

