亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2019年03月09日 16:36:18   作者:情·深  
這篇文章主要介紹了記Asp.Net Core Swagger使用并帶域接口處理的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

因?yàn)闃I(yè)務(wù)需求需要?jiǎng)?chuàng)建域,但是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描述器擴(kuò)展
  /// </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;
    }
  }
}

通過接口描述擴(kuò)展獲取區(qū)域及相關(guān)信息進(jìn)行改寫擴(kuò)展。

使用說明:

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);//這個(gè)就是剛剛配置的xml文件名
        c.IncludeXmlComments(xmlPath, true);//默認(rèn)的第二個(gè)參數(shù)是false,這個(gè)是controller的注釋,記得修改
      });

紅色部分加入代碼即可。

結(jié)果展示:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論