using System; using System.IO; using System.Linq; using System.Reflection; using System.Web.Http; using Abp.Application.Services; using Abp.Configuration.Startup; using Abp.Modules; using Abp.WebApi; using Swashbuckle.Application; using WeEngine.SwaggerUi; using WePlatform.Configuration; using WePlatform.DataCenter; using WePlatform.SwaggerUi; namespace WePlatform.Api { [DependsOn(typeof(AbpWebApiModule), typeof(WePlatformApplicationModule))] public class WePlatformWebApiModule : AbpModule { public override void Initialize() { IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); var api = Configuration.Modules.AbpWebApi(); api.DynamicApiControllerBuilder .ForAll(typeof(WePlatformApplicationModule).Assembly, IwbConsts.ServicePrefix) .Build(); api.DynamicApiControllerBuilder .ForAll(typeof(WePlatformApplicationModule).Assembly, IwbConsts.WePlatformServicePrefix) .Build(); api.HttpConfiguration.Filters.Add(new HostAuthenticationFilter("Bearer")); ConfigureSwaggerUi(); } //public override void PostInitialize() //{ //} /// /// 配置SwaggerUi /// private void ConfigureSwaggerUi() { Configuration.Modules.AbpWebApi().HttpConfiguration .EnableSwagger(c => { c.SingleApiVersion($"V{IwbConsts.Version}", "智慧推演引擎API文档"); c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); var baseDirectory = AppDomain.CurrentDomain.BaseDirectory; var filePath = Path.Combine(baseDirectory, "bin//WePlatform.Api.xml"); //将注释的XML文档添加到SwaggerUI中 c.IncludeXmlComments(filePath); c.CustomProvider((p) => new SwaggerControllerDescProvider(p, filePath)); c.OperationFilter(); // 在接口类、方法标记属性 [HiddenApi],可以阻止【Swagger文档】生成 c.DocumentFilter(); }) .EnableSwaggerUi("doc/{*assetPath}", b => { b.DocumentTitle("API-智慧应急演练培训平台"); b.InjectJavaScript(Assembly.GetExecutingAssembly(), "WePlatform.SwaggerUi.Script.Swagger.js"); b.InjectStylesheet(Assembly.GetExecutingAssembly(), "WePlatform.SwaggerUi.Css.Site.css"); //b.CustomAsset("jquery.min.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.jquery.min.js"); //b.CustomAsset("jquery.slideto.min.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.jquery.slideto.min.js"); //b.CustomAsset("jquery.wiggle.min.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.jquery.wiggle.min.js"); //b.CustomAsset("jquery.ba-bbq.min.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.jquery.ba-bbq.min.js"); //b.CustomAsset("handlebars.runtime-1.0.0.beta.6.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.handlebars.runtime-1.0.0.beta.6.js"); //b.CustomAsset("underscore-min.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.underscore-min.js"); //b.CustomAsset("backbone-min.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.lib.backbone-min.js"); //b.CustomAsset("swagger.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.swagger.js"); //b.CustomAsset("swagger-ui.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Html.swagger-ui.js"); //b.CustomAsset("Swagger-iwb.js", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Script.Swagger.js"); //b.CustomAsset("Site.css", Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Css.Site.css"); //b.CustomAsset("index", Assembly.GetExecutingAssembly(),"WeEngine.SwaggerUi.Html.index.html",true); }); } } }