using System; using System.Collections.Generic; namespace SimApi.Configurations; public class SimApiOptions { /// /// Redis配置 /// public string? RedisConfiguration { get; set; } /// /// 原样返回给前端的配置信息 /// public Dictionary? WebConfig { get; set; } /// /// WebConfig返回是否包含版本信息 /// public bool WebConfigIncludeVersion { get; set; } = true; /// /// 是否启用后台任务系统 *基于Hangfire /// public bool EnableJob { get; set; } /// /// 启用SimApiAuth,一个简单的基于Header Token的认证方式。 /// default: false /// public bool EnableSimApiAuth { get; set; } /// /// 启用Cache功能 /// public bool EnableSimApiCache { get; set; } = true; /// /// 启用SimApi网关授权, 基于上层网关透传的身份令牌验证 /// public bool EnableSimApiAuthGate { get; set; } /// /// 开启S3兼容的存储系统。 /// default: false /// public bool EnableSimApiStorage { get; set; } /// /// 启用在线文档,启用后 访问 /swagger 可以查看对应的api文档。 /// default: false /// public bool EnableSimApiDoc { get; set; } /// /// 是否启用Synapse /// public bool EnableSynapse { get; set; } /// /// 启用全部Cors,对于开发前后分离的时候很有用。 /// default: true /// public bool EnableCors { get; set; } = true; /// /// 启用异常拦截,启用后,所有的异常将被通过json反馈。 /// default: true /// public bool EnableSimApiException { get; set; } = true; /// /// 启用返回结果拦截 /// public bool EnableSimApiResponseFilter { get; set; } = true; /// /// 启用请求日志中间件 /// default: false /// public bool EnableRequestLog { get; set; } /// /// 开启ForwardHeaders,开启后可以透传负载均衡的Headers /// default: true /// public bool EnableForwardHeaders { get; set; } = true; /// /// 将所有的url都格式化为小写字母 /// default: true /// public bool EnableLowerUrl { get; set; } = true; /// /// 启用格式化的 Console Logger /// default: false /// public bool EnableLogger { get; set; } = true; /// /// 是否启用SimApiHttpClient /// public bool EnableSimApiHttpClient { get; set; } = false; /// /// 配置Job /// public SimApiJobOptions SimApiJobOptions { get; set; } = new(); /// /// Swagger文档相关配置,需要启用 EnableSimApiDoc /// public SimApiDocOptions SimApiDocOptions { get; set; } = new(); /// /// S3兼容的存储系统配置,需要启用 EnableSimApiStorage /// public SimApiStorageOptions SimApiStorageOptions { get; set; } = new(); public SimApiSynapseOptions SimApiSynapseOptions { get; set; } = new(); public SimApiAuthCenterOptions SimApiAuthCenterOptions { get; set; } = new(); public SimApiHttpClientOptions SimApiHttpClientOptions { get; set; } = new(); public SimApiExceptionOptions SimApiExceptionOptions { get; set; } = new(); public SimApiRouteOptions SimApiRouteOptions { get; set; } = new(); public SimApiRequestLogOptions SimApiRequestLogOptions { get; set; } = new(); public void ConfigureSimApiRoute(Action? options = null) { options?.Invoke(SimApiRouteOptions); } public void ConfigureSimApiException(Action? options = null) { options?.Invoke(SimApiExceptionOptions); } public void ConfigureSimApiHttpClient(Action? options = null) { options?.Invoke(SimApiHttpClientOptions); } public void ConfigureSimApiSynapse(Action? options = null) { options?.Invoke(SimApiSynapseOptions); } public void ConfigureSimApiDoc(Action? options = null) { options?.Invoke(SimApiDocOptions); } public void ConfigureSimApiStorage(Action? options = null) { options?.Invoke(SimApiStorageOptions); } public void ConfigureSimApiJob(Action? options = null) { options?.Invoke(SimApiJobOptions); } public void ConfigureSimApiAuthCenter(Action? options = null) { options?.Invoke(SimApiAuthCenterOptions); } public void ConfigureSimApiRequestLog(Action? options = null) { options?.Invoke(SimApiRequestLogOptions); } }