using System; using SimApi.CoceSdk; namespace SimApi.Configurations; public class SimApiOptions { public string? RedisConfiguration { get; set; } /// /// 是否启用后台任务系统 *基于Hangfire /// public bool EnableJob { get; set; } = false; /// /// 启用全部Cors,对于开发前后分离的时候很有用。 /// default: true /// public bool EnableCors { get; set; } = true; /// /// 启用SimApiAuth,一个简单的基于Header Token的认证方式。 /// default: false /// public bool EnableSimApiAuth { get; set; } /// /// 是否使用CoceSdk /// public bool EnableCoceSdk { get; set; } public CoceAppSdkOption CoceSdkOptions { get; set; } = new(); /// /// 启用在线文档,启用后 访问 /swagger 可以查看对应的api文档。 /// default: false /// public bool EnableSimApiDoc { get; set; } /// /// 启用异常拦截,启用后,所有的异常将被通过json反馈。 /// default: true /// public bool EnableSimApiException { get; set; } = true; /// /// 启用返回结果拦截 /// public bool EnableSimApiResponseFilter { get; set; } = true; /// /// 开启S3兼容的存储系统。 /// default: false /// public bool EnableSimApiStorage { 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; } /// /// 是否启用Synapse /// public bool EnableSynapse { get; set; } /// /// 配置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 void ConfigureSimApiSynapse(Action? options = null) { options?.Invoke(SimApiSynapseOptions); } public void ConfigureCoceSdk(Action? options = null) { options?.Invoke(CoceSdkOptions); } 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); } }