Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Concept

核心基础设施

Compatibility、Core、RequestLogging、Rest、Webhooks 五个跨域共享基础设施包的职责与依赖链。

Last updated

Bitzsoft.Integrations 的全部功能域共享五个基础设施包。它们位于架构的最底层,向上为抽象层、厂商实现层和聚合层提供统一的能力目录、上下文、凭据、审计日志、通用传输和 Webhook 管道。理解这五个包是理解整个连接器库运行方式的前提。

五个包各做什么

NuGet ID职责被谁依赖
CompatibilityBitzsoft.Integrations.Compatibilitynet5/8/10 的 BCL 兼容层,抹平 API 差异几乎所有包
CoreBitzsoft.Integrations.CoreProvider 目录、解析器、上下文、凭据、异常所有域抽象层
RequestLoggingBitzsoft.Integrations.RequestLoggingHTTP 请求审计、脱敏、非阻塞入队所有走 HttpClient 的厂商
RestBitzsoft.Integrations.Rest通用多租户 REST/Webhook 传输Jira Cloud 等复杂场景
WebhooksBitzsoft.Integrations.Webhooks验签、收件箱、重试、死信、网关Rest、Jira Cloud

前三个是真正的跨域共享骨架,所有功能域都依赖。Rest 和 Webhooks 是可选基础设施,只被需要复杂 OAuth、签名或回调的域直接引用。

依赖链

Compatibility
BCL 兼容层

Core
能力目录与解析

RequestLogging
审计日志

Rest
通用传输

Webhooks
收件与验签

域抽象层
Payment / Sms / FileStorage ...

厂商实现层

依赖只能向下流动。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.ThrowIfNullConvert.ToHexString、带 CancellationTokenHttpContent.ReadAs* 重载。Compatibility 用 #if NET5_0 自实现这些缺失 API,net8+ 直接委托 BCL,对外提供统一调用面。几乎被所有包通过 global using 引入。

详见 Compatibility 兼容层

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 丢弃日志,宿主接入真实存储后即可获得完整审计能力。

详见 RequestLogging 请求审计

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 基础设施

一次请求经过的基础设施

第三方 APIRequestLogHandlerIIntegrationCredentialResolverIIntegrationProviderResolver消费者应用第三方 APIRequestLogHandlerIIntegrationCredentialResolverIIntegrationProviderResolver消费者应用GetRequired(providerId)Provider 实现解析租户凭据IntegrationCredential发送请求脱敏 · 入队HTTP 请求HTTP 响应响应(后台批量写日志)

Resolver 返回 Provider 实现,凭据由 IIntegrationCredentialResolver 按租户解析,请求经过 RequestLogHandler 脱敏入队后发往第三方。后台 processor 异步批量写入日志,不阻塞业务线程。

相关

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%