前言
4 月 11 日,阿里云智能集团 CEO 张勇在阿里云峰会上表示,让算力更普惠,而关于“普”提到的三个关键词中有两个是:提升开发者自服务、降低开发门槛。
阿里云 SDK 的历史发展也一直围绕着这两个关键词走过了许多个阶段,阿里云 SDK 趋于面向开发者更加透明与低成本的方向持续演进,而现如今 SDK 也迈入了对客更透明的新阶段。今天给开发者们介绍一个具有 SDK 里程碑意义的新功能 - SDK 发布报告。>>点击SDK发布报告,了解更多详情
SDK 开发者总是会有以下问题:
新版本 SDK 是否值得升级?
升级 SDK 新版本,代码该怎么调整?
升级 SDK 需不需要升级除了该产品SDK之外的库?
怎样进行版本依赖才不会导致依赖冲突?
担心升级版 SDK 的稳定性和安全性?
......
SDK 发布报告正是为了解决这些问题而诞生!
产品功能
SDK 发布报告大致分为几个部分:标题与 Badge、SDK 依赖核心库变更、OpenAPI 原子变更、生成器变更、Endpoint 变更、Deprecated 接口检测、SDK 测试报告。
标题与 Badge
发布报告通过几个格式的 Badge,在文档标题表明该版本 SDK 的检测结果,例如:
目前所有 Badge 的含义如下:
1.API变更兼容性:
API 变更是兼容的 |
|
API 存在不兼容变更 |
2.SDK变更兼容性:
SDK 变更是兼容的 |
|
SDK 存在不兼容变更 |
3.SDK核心库变更兼容性:
SDK 核心库变更是兼容的 |
|
SDK 核心库存在不兼容变更 |
4.SDK API参考指南:
SDK 支持 API 参考指南 |
|
SDK 不支持 API 参考指南 |
5.SDK Endpoint规则映射:
SDK 支持 Endpoint 自动映射 |
|
SDK 不支持 Endpoint 自动映射 |
SDK 依赖核心库的变更
核心库是阿里云 SDK 的基础库之一,包含了一些通用功能和基础类,例如 HTTP 请求、签名、字符串处理、编解码等。无论是哪个语言、哪个云产品的 SDK,都需要引用核心库来实现通用的基础功能,而随着 SDK 的迭代升级,依赖库也可能存在变更升级。依赖库更是官方 SDK 最核心的部分,使用官方 SDK 极大的提高了开发者调用阿里云 OpenAPI 的效率,降低了非常多不必要的自开发工作。
OpenAPI 原子能力变更
OpenAPI 的变更必须伴随 SDK 发布支持,否则新发布的 OpenAPI 变更在旧版 SDK 内是不可用的;OpenAPI 变更主要包括:新增 OpenAPI、请求与返回参数变更等。变更类型和变更内容是由我们针对两个版本 SDK 对应的 API 元数据快照计算得出,兼容性的判断也有一套完整的规则。
SDK 生成器变更检测
生成器是不同语言SDK生产的统一出口,同时也负责SDK发布时的版本、变更日志、兼容性等信息写入发布报告。生成器的特性更新某种程度上代表SDK通用功能的升级迭代。
Endpoint 变更检测
Endpoint 是请求接口服务的网络域名。随着云产品的服务部署地的变更与拓展,Endpoint会有对应的新增与变更。这部分信息的缺失甚至导致某些Region的请求失效。
Deprecated 接口检测
SDK 发布报告中会对弃用(Deprecated)接口进行汇总,声明新增哪些弃用接口,以及声明弃用接口的替代接口,助力开发者对弃用接口的代码调用进行升级与迁移。
SDK 测试报告
除了知晓 SDK 新版本的变更内容,开发者对 SDK 可用性声明也最为关心。SDK 发布报告中提供了完整的 SDK 测试报告,内容包括测试覆盖率和测试通过率,会详细列出有哪些 OpenAPI 做了测试,哪些 OpenAPI 没有测试。
总结
目前九成以上的阿里云 OpenAPI 开发者都使用了我们的官方 SDK 集成云业务。随着产品能力的演进,无论是 OpenAPI 变更还是 SDK 自身基础能力的变更升级都是在所难免的,SDK 作为开发者与云产品交互的桥梁,稳定性无疑是最受关注的方面,而 SDK 发布报告的诞生解决了各版本 SDK 更新内容的不透明性,提升了开发者升级变更阶段的稳定性与安全性。