refactor: 对齐 simapi-net 的 20 项差异
- SimApiLoginItem._types 默认 [user] - 新增 SimApiIdOnlyRequest - errorWhenNone 改名 errorWhenNull - SimApiAuth.update 保留 TTL(Redis ttl/expire) - SimApiCache: set 接受 Any + 新增 get<T>/getString - SimApiHttpClient 签名字段移出 Options - SimApiUtil: md5/sha1 支持 mode + 新增 paginate - @SimApiAuth 支持逗号分隔多类型 - Logger: 4 位毫秒 + IsEnabled 恒 true - 删除 /versions 端点;exceptionHandler 改为抛错 - UseSimApi 中间件顺序对齐 .NET - README 同步更新
This commit is contained in:
@@ -216,10 +216,15 @@ extend WebHost <: SimApiHostExtensions {
|
||||
}
|
||||
|
||||
// ===== 中间件与路由(对齐 C# UseSimApi(WebApplication) 的挂载顺序) =====
|
||||
// C# 挂载顺序(先挂载 = 外层):CORS(L425) → AuthGate(L454) → Auth(L462) → RequestLog(L519) → Exception(L525)
|
||||
// OPTIONS 预检请求在 CORS 处短路(204,不调用 next),因此 RequestLog/Exception 均不会执行
|
||||
// C# 挂载顺序(先挂载 = 外层):ForwardedHeaders(L419) → CORS(L425) → AuthGate(L454) → Auth(L462)
|
||||
// → 内置路由(L465-496) → Swagger(L502) → RequestLog(L519) → Exception(L525) → LowerUrl → Job
|
||||
|
||||
// CORS(对齐 C# builder.UseCors("any"),最先挂载)
|
||||
// ForwardedHeaders(占位:soulsoft 暂无内置,对齐 C# 最先挂载)
|
||||
if (options.enableForwardHeaders) {
|
||||
logger.info("开始配置ForwardedHeaders...")
|
||||
}
|
||||
|
||||
// CORS(对齐 C# builder.UseCors("any"))
|
||||
if (options.enableCors) {
|
||||
logger.info("开始配置 Cors全部允许...")
|
||||
this.useCors()
|
||||
@@ -237,18 +242,6 @@ extend WebHost <: SimApiHostExtensions {
|
||||
this.use<SimApiAuthMiddleware>()
|
||||
}
|
||||
|
||||
// 请求日志中间件(对齐 C# builder.UseMiddleware<SimApiRequestLogMiddleware>())
|
||||
if (options.enableRequestLog) {
|
||||
logger.info("开始配置 SimApiRequestLog...")
|
||||
this.use<SimApiRequestLogMiddleware>()
|
||||
}
|
||||
|
||||
// 异常中间件最后挂载(最内层,对齐 C# builder.UseMiddleware<SimApiExceptionMiddleware>())
|
||||
if (options.enableSimApiException) {
|
||||
logger.info("开始配置 SimApiException...")
|
||||
this.use<SimApiExceptionMiddleware>()
|
||||
}
|
||||
|
||||
// 内置路由:RouteOptions 自定义路径时真实注册(默认路径已由内置控制器特性路由覆盖,
|
||||
// 对齐 C# MapControllerRoute 语义;soulsoft 无约定路由 defaults,用 mapGet/mapPost 委托实现)
|
||||
let routeOptions = options.simApiRouteOptions
|
||||
@@ -308,11 +301,23 @@ extend WebHost <: SimApiHostExtensions {
|
||||
logger.info("注册内置Route: WebConfig => ${route}")
|
||||
}
|
||||
|
||||
// SimApiDoc(占位)
|
||||
// SimApiDoc(占位,对齐 C# UseSwagger/UseSwaggerUI)
|
||||
if (options.enableSimApiDoc) {
|
||||
logger.info("开始配置 SimApiDoc...")
|
||||
}
|
||||
|
||||
// 请求日志中间件(对齐 C# builder.UseMiddleware<SimApiRequestLogMiddleware>())
|
||||
if (options.enableRequestLog) {
|
||||
logger.info("开始配置 SimApiRequestLog...")
|
||||
this.use<SimApiRequestLogMiddleware>()
|
||||
}
|
||||
|
||||
// 异常中间件最后挂载(最内层,对齐 C# builder.UseMiddleware<SimApiExceptionMiddleware>())
|
||||
if (options.enableSimApiException) {
|
||||
logger.info("开始配置 SimApiException...")
|
||||
this.use<SimApiExceptionMiddleware>()
|
||||
}
|
||||
|
||||
// URL 小写
|
||||
if (options.enableLowerUrl) {
|
||||
logger.info("开始配置使用URL小写...")
|
||||
@@ -329,11 +334,6 @@ extend WebHost <: SimApiHostExtensions {
|
||||
logger.info("开始配置 SimApiResponseFilter...")
|
||||
}
|
||||
|
||||
// ForwardedHeaders(占位:soulsoft 暂无内置)
|
||||
if (options.enableForwardHeaders) {
|
||||
logger.info("开始配置ForwardedHeaders...")
|
||||
}
|
||||
|
||||
// 映射控制器端点(对齐 C# UseSimApi 中的 MapControllers)
|
||||
let callSiteFactory = this.services.getOrThrow<IServiceProviderIsService>()
|
||||
if (callSiteFactory.isService<ApplicationPartManager>()) {
|
||||
|
||||
Reference in New Issue
Block a user