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,并編寫測(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類中的ConfigureServices 方法中,注冊(cè)所需的 Swagger 服務(wù):
public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); // Register the Swagger services services.AddSwaggerDocument() }
在 Startup類中的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 注釋,請(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í)入門級(jí)的,能大體使用起來(lái),能滿足一般性需求;
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
擴(kuò)展 Entity Framework支持復(fù)雜的過(guò)濾條件(多個(gè)關(guān)鍵字模糊匹配)
之前遇到一個(gè)棘手的Linq to EF查詢的技術(shù)問(wèn)題,現(xiàn)有產(chǎn)品表Product,需要根據(jù)多個(gè)關(guān)鍵字模糊匹配產(chǎn)品名稱, 現(xiàn)將解決方案分享出來(lái),按興趣的朋友可以參考下2012-12-12淺談從ASP.NET Core2.2到3.0你可能會(huì)遇到這些問(wèn)題
這篇文章主要介紹了ASP.NET Core2.2到3.0可能會(huì)遇到的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04asp.net MVC 在Controller控制器中實(shí)現(xiàn)驗(yàn)證碼輸出功能
這篇文章主要介紹了asp.net MVC 在Controller控制器中實(shí)現(xiàn)驗(yàn)證碼輸出功能,本文給大家介紹非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12ASP.NET的適配器設(shè)計(jì)模式(Adapter)應(yīng)用詳解
有關(guān)設(shè)計(jì)模式的適配器模式(Adapter)確實(shí)不是很好理解理解,接下來(lái)將做一個(gè)簡(jiǎn)單的例子簡(jiǎn)要說(shuō)明下,感興趣的朋友可不要錯(cuò)過(guò)了哈,希望本文可以幫助到你更好的理解適配器設(shè)計(jì)模式2013-02-02Asp.net response對(duì)象與request對(duì)象使用介紹
這篇文章主要介紹了Asp.net response對(duì)象與request對(duì)象使用,需要的朋友可以參考下2014-04-04asp.net String.IsNullOrEmpty 方法
2009-04-04GridView導(dǎo)出Excel常見(jiàn)的5種文本格式
本文主要介紹GridView導(dǎo)出Excel常見(jiàn)的文本格式,以幫助開發(fā)人員做導(dǎo)出的Excel時(shí)避免出現(xiàn)文本格式不一致的問(wèn)題。2016-03-03.net中的session與cookies區(qū)別及使用方法
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上,cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙,考慮到安全應(yīng)當(dāng)使用session2013-04-04使用ASP.Net?WebAPI構(gòu)建REST服務(wù)
這篇文章介紹了使用ASP.Net?WebAPI構(gòu)建REST服務(wù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06