记Asp.Net Core Swagger 使用 并带域接口处理
发布时间:2020-12-16 03:56:07 所属栏目:asp.Net 来源:网络整理
导读:引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升。但是使用Swagger时如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的业务需求而需要分类或者有同名的类名
引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升。但是使用Swagger时如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的业务需求而需要分类或者有同名的类名时时则没办法很好的处理。 因为业务需求需要创建域,但是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> /// 获取区域名称 /// </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; } } } 通过接口描述扩展获取区域及相关信息进行改写扩展。 ? 使用说明: 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 = "[email?protected]",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);//默认的第二个参数是false,这个是controller的注释,记得修改 }); 红色部分加入代码即可。 ? 结果展示: ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 从代码隐藏调用ASP.NET Web API
- 如何使用参数初始化ASP.NET用户控件?
- asp.net – 将我的Web应用程序文件发布到远程服务器wwwroot
- asp.net-mvc – 将id类型从string更改为int时,如何在Web AP
- asp.net-web-api – 在ODataConventionModelBuilder中设置数
- asp.net-mvc – ASP.NET MVC如何防止重新发布
- asp.net-mvc – ASP.NET MVC自定义路由约束和依赖注入
- asp.net – 如何确定以下默认Web配置值?
- asp.net-mvc – MVC4 HTML TextBox在修改ViewModel后不起作
- asp.net – 如何填充asp:DropDown客户端?
推荐文章
站长推荐
- asp.net – aspx页面中的代码是否在Web应用程序中
- 使用ASP.net和Access数据库保护SQL Injection的网
- asp.net-mvc – 如何在客户端Kendo UI网格中实现
- asp.net-MVC – ASP.NET MVC:我可以说[授权角色
- asp.net – MVC4项目 – 参数值中不能有点?
- asp.net-mvc – 会话超时处理的会话开始和操作过
- asp.net-mvc – ASP.NET MVC页面/子页面路由
- asp.net-mvc – 控制台应用程序HttpClient发布到
- 如何创建使用asp:ListItem列表作为子控件的ASP.
- asp.net-mvc – 在视图中格式化小数
热点阅读