agilelabs-fx-docs main real-usecases/niusys-webapi.md

niusys-webapi

niusys-webapi 是偏 WebAPI 的真实项目案例,适合观察 AgileLabs Framework 在 API 服务、认证授权、Swagger、Hangfire 和 WorkContext 场景中的落地方式。

适合看什么

  • 标准 WebAPI 宿主组织。
  • EnvelopMessage 与 Swagger 对齐。
  • JWT + ApiKey 双认证链。
  • Hangfire Dashboard 与 Server 组合。

关键实践

  • Program.cs 只保留最薄启动入口,扩展点分散到 AppConfigureServiceRegisterHangfireRegister
  • 通过 WebApiActionFiltersConfig 注册 ExceptionHandlerFilterEnvelopFilterAttribute
  • 通过 ConfigureMvcJsonSerialization() 统一配置 Newtonsoft.Json 和 JsonNetSerializerSettings.Instance
  • 通过 AddSwaggerEnvelopFilters 让成功响应文档自动包装成 EnvelopMessage<T>
  • API Key 认证成功后,通过 IWorkContextCoreSetter 把用户标识写入 WorkContext。
  • HangfireRegister 同时承担服务注册、Dashboard 暴露和请求管道接入,说明后台能力通常不是单独的 Demo 组件。
  • 后台逻辑里存在显式 CreateScopeWithWorkContext(),说明非 HTTP 执行流也会主动建立上下文边界。

检查时重点核对

  • 是否只有一套统一异常链和统一封包入口。
  • Swagger 是否与真实响应结构保持一致。
  • Json 配置是否集中在宿主入口,而不是散落在控制器里。

推荐搭配阅读

相关页面