一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 記Asp.Net Core Swagger使用并帶域接口處理的方法

記Asp.Net Core Swagger使用并帶域接口處理的方法

2019-06-19 17:07情·深 ASP.NET教程

這篇文章主要介紹了記Asp.Net Core Swagger使用并帶域接口處理的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習

引用作者原話:Asp.Net的WebApi中使用Swagger作為說明和測試的頁面是非常不錯的,比起WebApiTestClient來至少在界面上的很大的提升。但是使用Swagger時如果只是一般的控制器直接放到Controller下就可以了,而如果因不同的業務需求而需要分類或者有同名的類名時時則沒辦法很好的處理。

因為業務需求需要創建域,但是Swagger并未將域添加到接口。所以需要加上以下操作才行。

安裝Swagger方法:

為了大家多看微軟官方文檔、就直接引用Swagger安裝及使用方法。以下是微軟官方文檔。

https://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",
          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 Core Swagger使用并帶域接口處理的方法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产日韩制服在线观看 | 久久91精品国产91久久户 | 色哟哟精品 | 天天舔天天射 | 免费看日本| 丝袜老师好湿好紧我要进去了 | t66y地址一地址二地址三 | 色哟哟在线视频 | 欧洲美女啪啪 | dasd817黑人在线播放 | 京东热在线观看 | 亚洲欧洲淘宝天堂日本 | 古代色翁荡熄 | 精品综合在线 | 亚洲国产一区二区三区a毛片 | 男女男在线精品网站免费观看 | 精品无码人妻一区二区免费AV | 五月天精品视频播放在线观看 | 成人网视频免费播放 | 男人晚上适合偷偷看的污污 | 动漫精品一区二区三区3d | 好紧好爽再叫浪一点点潘金莲 | 韩日视频在线观看 | aaa毛片视频免费观看 | 国产91区 | 日韩欧美在线一区二区三区 | 欧美日韩国产成人精品 | 亚洲aⅴ天堂 | 日本捏胸吃奶视频免费 | 91免费精品国自产拍在线不卡 | 嫩草在线视频www免费观看 | 欧美黑人一级片 | 青青草国产青春综合久久 | 男人天堂bt| 国产成人亚洲精品91专区手机 | 操久| 亚洲高清在线视频 | 天堂a免费视频在线观看 | 国产九九在线 | 香蕉成人国产精品免费看网站 | 操儿媳小说 |