記Asp.Net Core Swagger使用并帶域接口處理的方法
引用作者原話:Asp.Net的WebApi中使用Swagger作為說明和測試的頁面是非常不錯的,比起WebApiTestClient來至少在界面上的很大的提升。但是使用Swagger時如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的業(yè)務(wù)需求而需要分類或者有同名的類名時時則沒辦法很好的處理。
因為業(yè)務(wù)需求需要創(chuàng)建域,但是Swagger并未將域添加到接口。所以需要加上以下操作才行。
安裝Swagger方法:
為了大家多看微軟官方文檔、就直接引用Swagger安裝及使用方法。以下是微軟官方文檔。
增加域接口顯示方法:
using Microsoft.AspNetCore.Mvc.ApiExplorer; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace System.Web.Http.Description { /// <summary> /// API描述器擴展 /// </summary> public static class ApiDescriptionExtension { /// <summary> /// 獲取區(qū)域名稱 /// </summary> /// <param name="description"></param> /// <returns></returns> public static List<string> GetAreaName(this ApiDescription description) { string areaName = description.ActionDescriptor.RouteValues["area"]; string controlName = description.ActionDescriptor.RouteValues["controller"]; List<string> areaList = new List<string>(); areaList.Add(controlName); if (!string.IsNullOrEmpty(areaName)) { description.RelativePath = $"{areaName}/{controlName}/{description.RelativePath}"; } return areaList; } } }
通過接口描述擴展獲取區(qū)域及相關(guān)信息進行改寫擴展。
使用說明:
services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Version = "v1.0.0", Title = " API", Description = description, TermsOfService = "你的公司", Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "Blog.Core", Email = "Blog.Core@xxx.com", Url = "https://www.jianshu.com/u/94102b59cc2a" } }); //使用域描述 c.TagActionsBy(apiDesc => apiDesc.GetAreaName()); var basePath = PlatformServices.Default.Application.ApplicationBasePath; var xmlPath = Path.Combine(basePath, xmlName);//這個就是剛剛配置的xml文件名 c.IncludeXmlComments(xmlPath, true);//默認的第二個參數(shù)是false,這個是controller的注釋,記得修改 });
紅色部分加入代碼即可。
結(jié)果展示:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET簡單獲取服務(wù)端和客戶端計算機名稱的方法
這篇文章主要介紹了ASP.NET簡單獲取服務(wù)端和客戶端計算機名稱的方法,涉及asp.net獲取服務(wù)器端計算機名以及根據(jù)IP獲取客戶端主機名的相關(guān)技巧,需要的朋友可以參考下2016-08-08asp.net 該行已經(jīng)屬于另一個表錯誤的解決方法
從一個TABLE中取一行放到另一個TABLE里報錯: 該行已經(jīng)屬于另一個表。的解決辦法 用下面來個方法就OK了。2010-05-05探究ASP.NET Core Middleware實現(xiàn)方法
這篇文章主要介紹了探究ASP.NET Core Middleware實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02.NET?如何使用?OpenTelemetry?metrics?監(jiān)控應(yīng)用程序指標
這篇文章主要介紹了.NET?使用?OpenTelemetry?metrics?監(jiān)控應(yīng)用程序指標,通過代碼演示了如何通過 OpenTelemetry 把 Metrics 的數(shù)據(jù)發(fā)送到 Prometheus 里進行查詢與展示,然后又演示了自定義相關(guān)指標來滿足業(yè)務(wù)數(shù)據(jù)指標的監(jiān)控,需要的朋友可以參考下2024-06-06DataTable數(shù)據(jù)導(dǎo)出成Excel文件的小例子
DataTable數(shù)據(jù)導(dǎo)出成Excel文件的小例子,需要的朋友可以參考一下2013-04-04在?.NET?平臺使用?ReflectionDynamicObject?優(yōu)化反射調(diào)用的代碼詳解
這篇文章主要介紹了在?.NET?平臺使用?ReflectionDynamicObject?優(yōu)化反射調(diào)用代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03