Bitzsoft.Integrations 的全部功能域共享五个基础设施包。它们位于架构的最底层,向上为抽象层、厂商实现层和聚合层提供统一的能力目录、上下文、凭据、审计日志、通用传输和 Webhook 管道。理解这五个包是理解整个连接器库运行方式的前提。
五个包各做什么
| 包 | NuGet ID | 职责 | 被谁依赖 |
|---|---|---|---|
| Compatibility | Bitzsoft.Integrations.Compatibility | net5/8/10 的 BCL 兼容层,抹平 API 差异 | 几乎所有包 |
| Core | Bitzsoft.Integrations.Core | Provider 目录、解析器、上下文、凭据、异常 | 所有域抽象层 |
| RequestLogging | Bitzsoft.Integrations.RequestLogging | HTTP 请求审计、脱敏、非阻塞入队 | 所有走 HttpClient 的厂商 |
| Rest | Bitzsoft.Integrations.Rest | 通用多租户 REST/Webhook 传输 | Jira Cloud 等复杂场景 |
| Webhooks | Bitzsoft.Integrations.Webhooks | 验签、收件箱、重试、死信、网关 | Rest、Jira Cloud |
前三个是真正的跨域共享骨架,所有功能域都依赖。Rest 和 Webhooks 是可选基础设施,只被需要复杂 OAuth、签名或回调的域直接引用。
依赖链
依赖只能向下流动。Compatibility 是最底层的叶子,没有任何下游依赖;Core 依赖 Compatibility;RequestLogging 同时依赖 Compatibility 和 Core;Rest 和 Webhooks 位于同一层,Rest 在传输层组合 Webhooks 的验签能力。厂商实现层依赖所属域抽象、Core 和 RequestLogging,需要复杂 HTTP 时额外引用 Rest。
各包定位
Compatibility — BCL 兼容层
多目标框架(net5.0;net8.0;net10.0)会碰到大量 BCL API 差异:net5 没有 ArgumentNullException.ThrowIfNull、Convert.ToHexString、带 CancellationToken 的 HttpContent.ReadAs* 重载。Compatibility 用 #if NET5_0 自实现这些缺失 API,net8+ 直接委托 BCL,对外提供统一调用面。几乎被所有包通过 global using 引入。
Core — 能力目录与解析
Core 是连接器库的”事实源”层。IntegrationProviderDescriptor 描述每个 Provider 的 ID、领域、能力、稳定性和限制;IIntegrationProviderResolver<T> 按稳定 Provider ID 路由到具体实现;IntegrationContext 承载租户、地域和调用链信息;IntegrationCredential 提供可清零的凭据快照;IntegrationException 是统一的结构化异常基类。Core 不依赖任何域抽象,也不依赖 .NET 8 keyed services,在 net5.0 上完全工作。
详见 Integration Core。
RequestLogging — 请求审计
RequestLogging 是全库唯一真正统一的基础设施。RequestLogHandler 作为 DelegatingHandler 拦截每一笔 HttpClient 请求,做结构化脱敏后非阻塞入队,由后台 RequestLogProcessor 批量写入宿主提供的 IRequestLogStore。默认 NullRequestLogStore 丢弃日志,宿主接入真实存储后即可获得完整审计能力。
Rest — 通用传输
Rest 把多租户 REST 调用的通用模式抽象成可复用管道:端点解析、凭据解析、过期检查、HttpClient 租约、鉴权(None / API Key / Basic / Bearer / OAuth2 客户端凭据 / JWT Bearer)、HMAC 签名、流式响应。它被需要复杂 OAuth 流程或签名校验的域(如 Jira Cloud)直接引用,而不是依赖各厂商自己造轮子。
详见 Rest 通用传输。
Webhooks — Webhook 基础设施
Webhooks 提供入站 Webhook 的完整管道:HMAC 验签与防重放、持久化收件箱(至少一次投递)、指数退避重试、死信队列、事件分发网关。验签器按跨领域 Provider key 解析,Rest 内置的 RestWebhookVerifier 也注册到这套体系。
详见 Webhooks 基础设施。
一次请求经过的基础设施
Resolver 返回 Provider 实现,凭据由 IIntegrationCredentialResolver 按租户解析,请求经过 RequestLogHandler 脱敏入队后发往第三方。后台 processor 异步批量写入日志,不阻塞业务线程。
相关
- 01/05
Compatibility 兼容层
抹平 net5/8/10 BCL API 差异的兼容层——参数校验、HTTP 内容读取、十六进制与哈希、请求体抑制。
- 02/05
Integration Core
Core 包完整 API 参考——Provider 描述、目录、解析器、上下文、凭据、异常与 DI 注册。
- 03/05
RequestLogging 请求审计
通用 HTTP 审计基础设施——DelegatingHandler 拦截、后台批量写入、结构化脱敏与正文捕获。
- 04/05
Rest 通用传输
通用多租户 REST/Webhook 传输层——端点解析、凭据、多种鉴权、HMAC 签名与流式响应。
- 05/05
Webhooks 基础设施
入站 Webhook 完整管道——HMAC 验签防重放、持久化收件箱、指数退避重试、死信与事件分发。