api2key-base-sdk
v0.1.4
Published
TypeScript SDK for consuming the Api2Key API stable APIs
Maintainers
Readme
api2key-base-sdk
api2key-base-sdk 是当前唯一保留的 SDK 入口,统一承载基础平台能力、项目运行时能力和后台管理客户端。
适合放进所有新项目作为默认基础依赖。
当前边界
当前统一暴露:
authcreditsapiKeyssettingsprojectsorderspaymentaiadmin
安装原则:
- 所有新项目默认只安装
api2key-base-sdk - 后台项目也只安装
api2key-base-sdk - 单项目私有逻辑优先留在本地 facade,而不是再拆新的 SDK 包
暴露的客户端
当前 api2key-base-sdk 暴露以下客户端:
authcreditsapiKeyssettingsprojectsorderspaymentaiadmin
1. auth
负责稳定的用户认证能力。
当前主要方法:
login(input)register(input)me(accessToken?)logout(accessToken?)
2. credits
负责稳定的积分账户与服务侧扣减能力。
当前主要方法包括:
getBalance(accessToken?)getLedger(input)(仅管理员账号可查询当前账户积分消耗流水,普通用户前台不应依赖)spend(input)reserve(input)confirm(id)cancel(id)
3. apiKeys
负责用户 API Key 生命周期管理。
4. settings
负责用户级设置的读取与更新。
5. projects / orders / payment / ai
负责项目商品、会员、订单、支付、AI 等运行时能力。
6. admin
负责项目管理、产品管理、用户管理、会员管理、模型管理、后台积分操作等控制面能力。
适合哪些项目
适合:
- 所有新项目
- 只需要登录、积分、用户设置、API Key 的项目
- 需要一个长期稳定基础依赖的项目
适合同一个 SDK 内统一暴露所有共享客户端,但不适合把某个单项目专属兼容逻辑强行塞进共享包。
安装
npm install api2key-base-sdk使用示例
import { createBasePlatformClient } from 'api2key-base-sdk';
const baseClient = createBasePlatformClient({
baseUrl: process.env.API2KEY_BASE_URL!,
getAccessToken: () => process.env.ACCESS_TOKEN,
getServiceSecret: () => process.env.SERVICE_SECRET,
});
const me = await baseClient.auth.me();
const credits = await baseClient.credits.getBalance();
const projectClient = createProjectPlatformClient({
baseUrl: process.env.API2KEY_BASE_URL!,
getAccessToken: () => process.env.ACCESS_TOKEN,
getProjectId: () => process.env.PROJECT_ID,
});
const adminClient = createAdminPlatformClient({
baseUrl: process.env.API2KEY_BASE_URL!,
getAccessToken: () => process.env.ADMIN_ACCESS_TOKEN,
});
const products = await projectClient.projects.getCatalogProducts(process.env.PROJECT_ID!);
const projects = await adminClient.admin.listProjects();设计原则
- 新项目默认只依赖这个包
- 共享客户端统一收敛在一个包里
api2key-base-api可以继续保持清晰的路由分层,而不需要在消费侧安装多个 SDK
Agent 约定
后续 agent 在处理需求时,默认把这个包视为“稳定基础层”。
规则:
- 如果需求属于共享客户端能力,优先在这里找
- 后端路由边界仍按 base/project/admin 区分,不要因为 SDK 合并而改乱 API 归属
- 如果新需求只服务单个项目,优先留在项目本地 facade
兼容说明
当前仍保留 createPlatformAClient 作为过渡别名,它返回基础能力客户端。
建议新代码统一使用:
createBasePlatformClientcreateProjectPlatformClientcreateAdminPlatformClient
