用途:在 b2c-developer-tooling 项目中新建类型化 API 客户端,覆盖 SCAPI 及类似 API,包括从 OpenAPI 规范生成类型、配置认证中间件、注入 OAuth 作用域和集成新的 Commerce API 端点。
主要能力:使用 openapi-fetch 与 openapi-typescript 生成类型安全的 HTTP 客户端与 TypeScript 类型;通过中间件注入认证与日志;使用共享传输 createHttpClient(options, auth) 保证 TLS 设置(如 selfsigned-api)随认证策略生效;SCAPI Admin API 使用 buildScapiClient(),直接请求用 getApiFetch(auth),WebSocket 用 createApiWebSocket(url, auth)。客户端工厂可封装作用域逻辑,使用 OAuthStrategy.withAdditionalScopes() 合并去重作用域,并共享令牌缓存。
使用方式:将规范放入 packages/b2c-tooling-sdk/specs/,在 package.json 的 generate:types 脚本中加入 openapi-typescript 条目,运行 pnpm --filter @salesforce/b2c-tooling-sdk run generate:types,然后创建客户端模块并加入 barrel 导出。SCAPI 客户端通过 config.scopes 或默认域作用域加 buildTenantScope(tenantId) 构建作用域。租户工具包括 toOrganizationId、normalizeTenantId、buildTenantScope 及常量 ORGANIZATION_ID_PREFIX、SCAPI_TENANT_SCOPE_PREFIX。
适用场景:新增 SCAPI 客户端、生成 OpenAPI 类型、建立 OAuth 中间件、集成 Commerce API 新端点。测试可用 MSW 模拟响应;错误处理用 getApiErrorMessage(error, response),并始终解构 response。
限制:必须使用共享传输而非 openapi-fetch 的 createClient,ESLint 会阻止 src/ 下直接默认导入及裸 fetch;TLS 设置按配置而非全局生效;WebDAV 使用独立 createWebDavDispatcher。资料未提供具体价格、平台支持范围或性能数据。