Skip to content

SDK 选型

ABetterChoice 通过三种接入形态暴露同一套实验与开关。在写代码前先挑一种 —— 之后也可以切换形态, 不用重建项目(同一个项目 ID、同一把 API key、同一组实验)。

一图速览

形态运行位置时延适合场景
服务端 SDK你的后端进程内亚毫秒(本地求值)受信运行时、高 QPS、希望调用零网络往返。
客户端 SDK移动端 App、Web 页面启动一次网络调用,后续本地不受信运行时,希望分组与终端用户绑定。
HTTP API任何能签名并发起请求的环境每次调用一个网络往返没有 SDK,或只需偶尔 / 批量调用。

服务端 SDK 与 HTTP API 中目前只有两种正式可用的接入:Go 服务端 SDK 与 HTTP API。 C++ 服务端 SDK 和三种客户端 SDK(AndroidiOSJavaScript)在 Settings → SDK&Key 下都标着 Coming soon

服务端 SDK

适合下列场景:

  • 进程跑在你控制的基础设施上,API token 永不出服务器;
  • 希望在分组热路径上网络调用 —— SDK 把配置缓存在内存里,每隔几秒后台轮询;
  • 你能为该 SDK 部署并管理一个长生命周期的进程。

SDK 每 3 秒拉取一次配置,本地求值。完整生命周期见 服务端 SDK 概览

今天可用:Go 已正式上线; C++Settings → SDK&Key 下标记为 Coming soon,如需提前 接入请联系支持。

客户端 SDK

适合下列场景:

  • 分组在用户的设备或浏览器中执行;
  • 希望应用启动时一次 HTTP 调用,后续热路径零调用;
  • 你接受把 API token(或公开作用域的变体)打进用户能解开的二进制里。

客户端 SDK 读取的是平台预计算好的结果。完整生命周期见 客户端 SDK 概览

今天三个客户端 SDK(AndroidiOSJavaScript)在 Settings → SDK&Key 下都是 Coming soon。 如需提前接入,请联系支持;语言专属页面已经描述了接入形态,便于你提前规划。

HTTP API

适合下列场景:

  • 该运行时没有 SDK(Rust、.NET、PHP、BI 工具、临时 shell 脚本);
  • 只需偶尔拉一次分组(批处理任务、CI 流水线);
  • 希望依赖最小。

每次请求把 (token, ak, et) 用 MD5 签出 X-Es,并随请求带上 X-AkX-EtX-Es 三个 header。 每次调用一次网络往返,无客户端缓存。详见 HTTP API 鉴权HTTP API 端点

决策路径

SDK 选型决策路径:根据调用在哪里执行选择 SDK 形态

拿不准时,先用 HTTP API 端到端验证项目、key 与受众目标,等运行时定型后再换成服务端 SDK。