333
This commit is contained in:
71
MyCode.Project.WebApi/App_Start/SwaggerConfig.cs
Normal file
71
MyCode.Project.WebApi/App_Start/SwaggerConfig.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Web.Http;
|
||||
using WebActivatorEx;
|
||||
using MyCode.Project.WebApi;
|
||||
using Swashbuckle.Application;
|
||||
using MyCode.Project.WebApi.SwaggerExtensions;
|
||||
using System.Web.Http.Description;
|
||||
using MyCode.Project.WebApi.App_Start;
|
||||
|
||||
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
|
||||
|
||||
namespace MyCode.Project.WebApi
|
||||
{
|
||||
public class SwaggerConfig
|
||||
{
|
||||
public static void Register()
|
||||
{
|
||||
var thisAssembly = typeof(SwaggerConfig).Assembly;
|
||||
|
||||
GlobalConfiguration.Configuration
|
||||
.EnableSwagger(c =>
|
||||
{
|
||||
// <20><><EFBFBD>ö<EFBFBD>API<50>汾
|
||||
c.MultipleApiVersions(ResolveAreasSupportByRouteConstraint, (vc) =>
|
||||
{
|
||||
vc.Version("Admin", "ZHMD<4D><44>̨API");
|
||||
vc.Version("Wechat", "ZHMD<44><CEA2>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>API");
|
||||
vc.Version("Member", "ZHMD<4D><44>ԱС<D4B1><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>API");
|
||||
vc.Version("v1", "ZHMDͨ<44><CDA8>API", true);
|
||||
vc.Version("ZhiBo", "ֱ<><D6B1>API");
|
||||
});
|
||||
|
||||
// c.SingleApiVersion("v1", "MyCode.Project.WebApi");
|
||||
//c.ApiKey("Authorization").Description("OAuth2 Auth").In("header").Name("Bearer ");
|
||||
c.ApiKey("Authorization").Description("OAuth2 Auth").In("header").Name("");
|
||||
c.IncludeXmlComments(string.Format("{0}/bin/MyCode.Project.WebApi.xml", AppDomain.CurrentDomain.BaseDirectory));
|
||||
c.IncludeXmlComments(string.Format("{0}/bin/MyCode.Project.Domain.xml", AppDomain.CurrentDomain.BaseDirectory));
|
||||
c.IncludeXmlComments(string.Format("{0}/bin/MyCode.Project.Infrastructure.xml", AppDomain.CurrentDomain.BaseDirectory));
|
||||
c.OperationFilter<AddAuthorizationHeaderParameterOperationFilter>();
|
||||
c.OperationFilter<AddUploadOperationFilter>();
|
||||
c.DocumentFilter<AuthTokenOperation>();
|
||||
|
||||
c.DocumentFilter<SwaggerAreasSupportDocumentFilter>();
|
||||
|
||||
c.ApiKey("Authorization").Description("OAuth2 Auth").In("header").Name("Authorization");
|
||||
})
|
||||
.EnableSwaggerUi(c =>
|
||||
{
|
||||
c.EnableApiKeySupport("Authorization", "header");
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
|
||||
/// </summary>
|
||||
/// <param name="apiDescription"></param>
|
||||
/// <param name="targetApiVersion"></param>
|
||||
/// <returns></returns>
|
||||
private static bool ResolveAreasSupportByRouteConstraint(ApiDescription apiDescription, string targetApiVersion)
|
||||
{
|
||||
if (targetApiVersion == "v1")
|
||||
{
|
||||
return apiDescription.Route.RouteTemplate.StartsWith($"api{MyCode.Project.Domain.Config.SystemConfig.ApiVersion}" + "/{controller}");
|
||||
}
|
||||
|
||||
var routeTemplateStart = $"api{MyCode.Project.Domain.Config.SystemConfig.ApiVersion}/" + targetApiVersion;
|
||||
|
||||
return apiDescription.Route.RouteTemplate.StartsWith(routeTemplateStart, StringComparison.CurrentCultureIgnoreCase);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user