本文介绍 CommonRequest 与 SDK 之间的区别,帮助开发者选择更适合的方案来进行 OpenAPI 的调用。
对比项 | CommonRequest | SDK |
---|---|---|
定义 | CommonRequest 是一个最小化的 SDK,仅包含 OpenAPI 调用过程中的内核部分,如签名逻辑等。不包含任何具体产品 API 的信息。 | SDK 是一个包含了具体产品 OpenAPI 元信息的封装。 |
签名逻辑 | 包含,开发者无需关注。 | 包含,开发者无需关注。 |
请求方法 | 需要用户通过文档查询,API 是通过 POST、GET 或其他方法请求后,赋值给 request 对象的对应属性。 | 开发者无需关注,SDK 中已包含。 |
公有参数 | 需要开发者查看文档获取请求 API 对应的产品参数,版本参数,返回体对应格式以及请求的 Action 参数或 API 对应的 URI 参数。 | 开发者无需关注,SDK 中已包含。 |
业务参数 | 需要开发者查看文档来查看 API 需要哪些参数,并且需要按照文档指示的格式来序列化参数,序列化开发和调试成本较高。 | SDK 中为用户提供了业务参数的结构化 Request 对象,按 IDE 提示即可完成编写,序列化过程由 SDK 完成,保障正确性。 |
返回结果 | 直接返回未经处理的字符串,开发者可通过 API 文档查看如何解析结果,并通过文档序列化处理后的返回值组成结构化的对象来使用。 | SDK 中为用户做了返回结果的解析,并返回跟文档一致的结构化 Response 对象,按 IDE 提示即可找到自己需要的参数来使用。 |
产品支持能力 | 支持所有产品。 | 部分云产品不提供原版 SDK ,所有云产品提供新版 SDK。 |
SDK 示例 | 仅 OpenAPI 开发者门户提供没有原版 SDK 产品的示例。 | OpenAPI 开发者门户不仅提供所有新版 SDK 和原版 SDK 示例,还为超过 50 款产品提供了SDK 场景化示例 |
总结
CommonRequest 方案的优点在于代码包体积小,适配产品范围大,无论使用多少产品,仅需一个依赖包。缺点是开发过程中需要文档指导,没有 IDE 提示,开发体验会偏差一点。
SDK 方案的优点在于开发体验良好,IDE 可以提供参数名,方法名,类型等。缺点是需要跟着产品走,如果产品没有发布 SDK,会导致无法使用,其次是如果使用的产品较多,需要安装较多的 SDK 包,代码体积会偏大一点。
基于开发体验的考量,我们推荐使用 SDK 方案,仅在没有 SDK 方案或对体积有顾虑的情况下使用 CommonRequest 方案。