Files
tnb.server/apihost/Tnb.API.Entry/Startup.cs

112 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using IGeekFan.AspNetCore.Knife4jUI;
using JNPF.API.Entry.Handlers;
using JNPF.Common.Cache;
using JNPF.Common.Core.Filter;
using JNPF.Common.Core.Handlers;
using JNPF.Common.Security;
using JNPF.DatabaseAccessor;
using JNPF.EventHandler;
using JNPF.JsonSerialization;
using JNPF.SpecificationDocument;
using JNPF.TaskScheduler.Interfaces.TaskScheduler;
using JNPF.UnifyResult;
using JNPF.VisualDev;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Senparc.CO2NET;
using Senparc.CO2NET.RegisterServices;
using Senparc.Weixin;
using Senparc.Weixin.Entities;
using Senparc.Weixin.RegisterServices;
using SqlSugar;
namespace JNPF.API.Entry;
public class Startup : AppStartup
{
public void ConfigureServices(IServiceCollection services)
{
services.ConfigureMvcController();
// SqlSugar
//services.SqlSugarConfigure();
services.ConfigureSqlSugar();
// 注册EventBus服务
services.ConfigureEventBus();
// 注册远程请求
services.AddRemoteRequest();
// 视图引擎
services.AddViewEngine();
// 任务调度
services.AddTaskScheduler();
// 脱敏词汇检测
services.AddSensitiveDetection();
// WebSocket服务
services.AddWebSocketManager();
// 微信
services.AddSenparcGlobalServices(App.Configuration) // Senparc.CO2NET 全局注册
.AddSenparcWeixinServices(App.Configuration); // Senparc.Weixin 注册如果使用Senparc.Weixin SDK则添加
services.ConfigureLogging();
services.ConfigureOSSService();
services.AddSchedule();
services.AddOverideVisualDev();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider serviceProvider, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> senparcWeixinSetting)
{
// 添加状态码拦截中间件
app.UseUnifyResultStatusCodes();
// app.UseHttpsRedirection(); // 强制https
app.UseStaticFiles();
#region
IRegisterService register = RegisterService.Start(senparcSetting.Value).UseSenparcGlobal();//启动 CO2NET 全局注册,必须!
register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value);//微信全局注册,必须!
#endregion
app.UseWebSockets();
app.UseRouting();
app.UseCorsAccessor();
app.UseAuthentication();
app.UseAuthorization();
app.UseKnife4UI(options =>
{
options.RoutePrefix = "newapi"; // 配置 Knife4UI 路由地址,现在是 /newapi
foreach (var groupInfo in SpecificationDocumentBuilder.GetOpenApiGroups())
{
options.SwaggerEndpoint("/" + groupInfo.RouteTemplate, groupInfo.Title);
}
});
app.UseInject(string.Empty);
//app.MapWebSocketManager("/api/message/websocket", serviceProvider.GetService<IMHandler>());
app.MapWebSocketManager("/websocket", serviceProvider.GetRequiredService<IMHandler>());
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
});
SnowflakeIdHelper.InitYitIdWorker();
serviceProvider.GetRequiredService<ITimeTaskService>().StartTimerJob();
}
}