| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using System;
- using System.IO;
- using System.Linq;
- using System.Reflection;
- using System.Web.Http;
- using Abp.Configuration.Startup;
- using Abp.Modules;
- using Abp.WebApi;
- using Swashbuckle.Application;
- using WeEngine.Application.Packages;
- using WeEngine.Application.RunEngine;
- using WeEngine.SwaggerUi;
- namespace WeEngine
- {
- [DependsOn(
- typeof(WeEngineRuntimeModule),
- typeof(AbpWebApiModule))]
- public class WeEngineWebApiModule : AbpModule
- {
- public override void Initialize()
- {
- IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
- Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
- .For<IEngineRunAppService>(WeEngineConst.EngineRunServicePrefix).WithConventionalVerbs()
- .Build();
- Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder
- .For<IEnginePackageAppService>(WeEngineConst.EnginePackageServicePrefix).WithConventionalVerbs()
- .Build();
- Configuration.Modules.AbpWebApi().HttpConfiguration.Filters.Add(new HostAuthenticationFilter("Bearer"));
- ConfigureSwaggerUi();
- }
- public override void PostInitialize()
- {
- Configuration.Modules.AbpWebApi().HttpConfiguration.EnsureInitialized();
- }
- /// <summary>
- /// 配置SwaggerUi
- /// </summary>
- private void ConfigureSwaggerUi()
- {
- Configuration.Modules.AbpWebApi().HttpConfiguration
- .EnableSwagger(c =>
- {
- c.SingleApiVersion($"V{WeEngineConst.Version}", "智慧推演引擎API文档");
- c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
- var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
- var filePath = Path.Combine(baseDirectory, "bin//WeEngine.Api.xml");
- //将注释的XML文档添加到SwaggerUI中
- c.IncludeXmlComments(filePath);
- c.CustomProvider((p) => new SwaggerControllerDescProvider(p, filePath));
- c.OperationFilter<HeaderAuthFilter>();
- // 在接口类、方法标记属性 [HiddenApi],可以阻止【Swagger文档】生成
- c.DocumentFilter<HiddenApiFilter>();
- })
- .EnableSwaggerUi("doc/{*assetPath}", b =>
- {
- b.DocumentTitle("API-智慧推演引擎");
- b.InjectJavaScript(Assembly.GetExecutingAssembly(), "WeEngine.SwaggerUi.Script.Swagger.js");
- b.InjectStylesheet(Assembly.GetExecutingAssembly(), "WeEngine.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);
- });
- }
- }
- }
|