Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Concept

架构概述

三层包模式、依赖链、结构变体和 Provider 目录——建立连接器库的整体架构心智模型。

Last updated

Bitzsoft.Integrations 把第三方服务集成抽象为统一的三层包模式:抽象层定义契约,厂商实现层各自适配,聚合层提供配置驱动的一键注册。这一约定贯穿全部 14 个功能域,是库最重要的架构约定。

一张图读懂请求路径

消费者应用
注入能力接口

Provider 实现
签名 · 请求构造 · 响应解析

Result 包装
IsSuccess · ErrorCode · Data

HttpClient 封装
Internal/ 命名空间

IHttpClientFactory
命名客户端

RequestLogHandler
审计 · 脱敏 · 非阻塞入队

第三方 API

Provider 是核心边界。它接收调用,通过 IHttpClientFactory 获取命名 HttpClient,请求经过 RequestLogHandler 做审计脱敏后发往第三方。错误在 Provider 边界被捕获并转换为 Result<T>,成功返回数据。

三个架构支点

三层包分离

绝大多数功能域遵循抽象 / 厂商 / 聚合三层。抽象层不含厂商逻辑,只定义接口和 DTO;厂商层每家一个包,包含 Options、Provider、HttpClient 封装和签名器;聚合层是空程序集,靠配置节存在性驱动注册。

Provider 目录与解析

IntegrationProviderDescriptor 是每个 Provider 的事实源——声明 ID、领域、能力、稳定性、限制。IIntegrationProviderResolver<T> 按稳定 Provider ID 解析,跨 net5/net8/net10 使用同一公共 API。

Result 优于异常

新域对外用 Result<T> 包装(IsSuccess + ErrorCode + ErrorMessage),内部用异常,在 Provider 方法边界捕获并转换。第三方 API 失败是预期分支,不是异常情况。

依赖链

Compatibility(BCL 兼容层)
Core(目录与解析)
RequestLogging(审计日志)
│ │
┌───────────┴────┬───────┴──────────┐
▼ ▼ ▼
抽象层(Payment) 抽象层(Sms) 抽象层(FileStorage)
┌────┼────┬──────────┐
▼ ▼ ▼ ▼
Alipay WeChatPay Stripe
│ │ │ │
└────┴────┴──────────┘
Payment.All

三个跨域共享的基础设施包:

职责
Compatibility多目标 BCL 兼容层,CompatibilityArgument.ThrowIfNull
CoreProvider Descriptor / Catalog / Resolver / Context / Credential / Exception
RequestLoggingHTTP 请求审计日志,DelegatingHandler 拦截 + 脱敏 + 非阻塞入队

哪些域遵循标准三层

抽象厂商数聚合包备注
Payment3当前最规范参照
FileStorage10胖接口(~20 方法)
ElectronicSignature8含回调验签
EnterpriseInfo3
Express7双接口变体
TeamWork6细粒度接口变体
CloudDrive6
EnterpriseMail5
LegalDatabase12适配器变体
OutboundCall7含编排引擎变体
Finance嵌套域(Invoice/Tax/Payroll)
Sms6单体包变体

推荐阅读顺序

  1. 三层包模式:理解每层职责边界。
  2. 依赖链:查看基础设施如何串联。
  3. 结构变体:了解不遵循标准三层的域。
  4. 多目标框架:net5/8/10 的含义与代价。
  5. Provider 目录与解析:Descriptor → Catalog → Resolver。
  6. AI 抽象栈:Abstractions → AI → RAG → AgentFramework。

100%

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