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);
}
}