记Asp.Net Core Swagger使用并带域接口处理的方法
 更新时间:2019年03月09日 16:36:18   作者:情·深  

这篇文章主要介绍了记Asp.Net Core Swagger使用并带域接口处理的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

引用作者原话:Asp.Net的WebApi中使用Swagger作为说明和测试的页面是非常不错的,比起WebApiTestClient来至少在界面上的很大的提升。但是使用Swagger时如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的业务需求而需要分类或者有同名的类名时时则没办法很好的处理。
因为业务需求需要创建域,但是Swagger并未将域添加到接口。所以需要加上以下操作才行。
安装Swagger方法:
为了大家多看微软官方文档、就直接引用Swagger安装及使用方法。以下是微软官方文档。
docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.1&tabs=visual-studio
增加域接口显示方法:

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 = “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 core WebApi 使用Swagger生成帮助页实例.Net Core2.1 WebAPI新增Swagger插件详解.NET Core利用swagger进行API接口文档管理的方法详解Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解asp.net core 3.0中使用swagger的方法与问题

.Net
Core
Swagger

相关文章
关于asp.net button按钮的OnClick和OnClientClick事件OnClick是button的服务器端事件 OnClientClick是button的客户端事件

2009-05-05
.NET基础之自定义泛型分析这篇文章主要介绍了.NET基础之自定义泛型,实例分析了定义泛型类、default关键字、约束类型等的用法,具有一定的参考借鉴价值,需要的朋友可以参考下 2014-11-11
Request.UrlReferrer中文乱码解决方法参考了网络大部分的解决方案,没一个能搞定的,如果穷途末路,试试下面的方法:将获得的前一页面的URL分成两段,后面的参数部分进行编码(直接对URL编码是不行的),然后再组合一下就可以了,需要的朋友可以了解下 2012-12-12
asp.net querystring乱码解决方法GB2312的网站如果直接用javascript进行ajax数据提交,会导致querystring乱码,下面提供一下解决方法 2014-02-02
解决asp.net mvc UpdateModel更新对象后出现null问题的方法这篇文章主要介绍了解决asp.net mvc UpdateModel 更新对象后出现null问题的方法,需要的朋友可以参考下 2015-11-11
asp.net 存储过程调用调用存储过程,但无返回值 调用存储过程,返回普通值 调用存储过程,返回数据集的实现代码。

2009-07-07
ASP.NET笔记之 行命令处理与分页详解本篇文章小编为大家介绍,ASP.NET笔记之 行命令处理与分页详解。需要的朋友参考下 2013-04-04
通过剪贴板实现将DataGridView中的数据导出到Excel这篇文章主要介绍了如何通过剪贴板实现将DataGridView中的数据导出到Excel,需要的朋友可以参考下 2014-05-05
vs.Net2003无法打开或创建Web应用程序若干解决办法.vs.Net2003无法打开或创建Web应用程序若干解决办法…. 2006-10-10
解决 The Controls collection cannot be modified because the 在.aspx或.ascx的如果包括%,并在.aspx, .ascs中使用了AjaxToolkit中的控件,那么很可能会引发这个问题,下面给出具体的解决方法。 2010-10-10

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。