跳到主要内容

本规范使用 必须应该 两种关键字来表示规范的约束性。

  • 必须 (MUST) - Client SDK 必须按照此规范来实现。
  • 应该 (SHOULD) - Client SDK 可以按照此规范来实现,也可以使用符合自己需求/规范的方式。

配置

Client SDK 必须 同时支持两种配置方式:

  • 配置项
  • 环境变量

账号

Client SDK 必须 支持可以同时使用多个 BigONE 账号。

Rate Limit

Client SDK 必须 遵循 BigONE Pro API 中定义的接口访问频率限制,主动控制接口调用频率。

日志

Client SDK 必须 实现日志输出的功能。

Client SDK 的日志默认 必须 输出到 STDOUT 中。

Client SDK 必须 可以根据配置输出不同的日志等级、输出到不同位置。

文档

Client SDK 必须 提供一个完整的示例文档,以方便开发者使用。此文档 应该 包括 SDK 的安装、集成、配置、示例调用等场景。

Client SDK 必须 为每个 API 提供注释。注释中 应该 包含该 API 的调用方法、参数、返回值等。

版本

Client SDK 的版本号 应该 按照 major.minor[.maintenance] 格式。

其中 major 表示不向下兼容的更新或者重构。minor 表示在某一个版本中增加新的特性或者对某一个接口进行了修改(此修改可以不向下兼容)。maintenance 表示对某一个 minor 版本的 patch version 。patch 只做 Bug fix , 不 应该 造成接口变动。

Client SDK 必须 在 Github 上通过打 Tag 的方式发布新版本。Tag name 必须 采用 vX.Y.Z 的格式。

Client SDK 应该 在 Github 上通过 Release 功能发布相应的版本。

如果 Client SDK 所采用的语言拥有包管理平台,Client SDK 必须 将版本发布到此平台。例如 rubygems, npm, pypi 等平台。同时需要在文档示例中展示如何从包管理平台安装。

Changelog

Client SDK 必须 维护 Changelog。Changelog 必须 包含每次版本更新所包含的修改项。