用途:为 Apollo.io API 集成提供生产级 TypeScript 模式。Apollo 没有官方 SDK,这些模式在 REST API(https://api.apollo.io/api/v1/)之上封装类型安全、重试逻辑、分页与批量操作,所有请求使用 x-api-key 请求头。
前提:已完成 apollo-install-auth 设置;TypeScript 5+ 且开启 strict 模式。
主要能力与用法:
- 类型安全客户端:用 Zod 校验配置(apiKey、baseURL、timeout),创建 axios 单例,通过 getApolloClient() 获取,resetClient() 供测试重置。
- 自定义错误类:ApolloApiError 携带 statusCode、endpoint、retryable、requestId;ApolloRateLimitError 携带 retryAfterMs。429、500、502、503、504 标记为可重试。
- 指数退避重试:withRetry 支持 maxRetries、baseMs、maxMs,加入随机抖动。
- 异步分页迭代器:paginate 使用 page/per_page 与 pagination.total_pages,People Search API 上限 500 页(50,000 条记录)。
- 批量补充:bulkEnrichPeople 调用 /people/bulk_match,每次最多 10 条,批次间暂停 500ms 以尊重速率限制,可选 reveal_personal_emails 与 reveal_phone_number。
适用场景:搜索结果超过 100 条需分页;多个联系人需邮箱/电话数据;需要区分认证、限流与服务器错误的类型化捕获;构建搜索、分页、补充的完整流水线。
限制:Apollo 无官方 SDK;批量补充每次最多 10 条;People Search 最多 500 页;需自行处理速率限制。具体收费、价格与平台信息暂未提供。