开发、测试、预发布阶段,无需调用真实接口。零封号风险、零误发消息。 首期完整复刻 Unipile LinkedIn API——切换一个环境变量即可替换真实 API,应用零代码改动;多 Provider 架构已就绪。
调用方应用 Simulator (simula-forge) ┌─────────────┐ X-API-KEY ┌──────────────────────────┐ │ unipiles/ │ ──────────────────▶ │ /linkedin/api/v1/** │ │ client.ts │ UNIPILE_API_URL │ 故障中间件 → 契约 oracle │ └─────────────┘ =host/linkedin │ → 端点 → 状态内核(SQLite)│ │ (前缀骑 baseURL, 零代码改动) │ → webhook fire-and-forget│ ▼ ├──────────────────────────┤ ┌─────────────┐ │ /brightdata/api/v1/** │ │ bd-client/ │ BD_API_URL │ (即将推出) │ └─────────────┘ ├──────────────────────────┤ ┌─────────────┐ │ /emailengine/api/v1/** │ │ ee-client/ │ EE_API_URL │ (即将推出) │ └─────────────┘ └──────────────────────────┘ ▼ Real Services (实跑时直连)
每个 Provider 独立模拟一套外部服务,URL 空间按 Provider 分目录,世界隔离跨 Provider 共享。
为开发者设计的模拟平台——从故障注入到确定性状态,覆盖集成测试的每个角落。
契约来源 = 真实抓包 + 调用方源码。错误信封、分页、状态词表均已实测锚定,响应格式与真实 API 一致。
切换环境变量(如 UNIPILE_API_URL)指向模拟器,应用零代码改动。每个 Provider 独立 URL 空间,互不干扰。
有状态内核管理 accounts / chats / messages / invites,写读一致,确定性种子可复现。
429 + Retry-After / 422 / 超时 / 封号信封——重试逻辑、错误处理终于可以在测试中验证。
模拟用户回复消息、触发应用侧 webhook。Inbox 和 Invites 是真正的对手戏舞台。
按 API Key 隔离世界,CI 并行测试互不污染。每世界独立虚拟时钟,可推进时间触发定时任务。
按 Provider 分组展示已实现的模拟端点,契约与真实抓包一致。