前言
在开始正文之前,我们先看下面几个问题:
- 阿里云刚刚开放了新一个产品,还没有发布SDK,直接接入API签名逻辑太复杂了搞不定怎么办?
- 我们的应用非常轻量,但阿里云的SDK比较重(API请求/应答类非常多),有没有轻量的使用方法?
- 阿里云的XX产品刚刚开放了一个新的API,但SDK还没有更新怎么办?
以上所有问题的答案,都是:“用SDK的CommonRequest!”
CommonRequest是什么?
CommonRequest,是阿里云官方推出的、泛用型的OpenAPI调用接口,您可以使用CommonRequest,实现任意OpenAPI接口的调用,CommonReques有如下特点:
- 轻量:只需Core包即可发起调用,无需下载安装各产品线SDK。
- 简便:无需更新SDK即可调用最新发布的API。
- 泛用:只需传入OpenApi标识信息,就可以调用任意OpenApi。
CommonRequest支持哪些语种?
CommonRequest是阿里云SDK核心包中的功能,也就是说,SDK支持哪些语种,CommonRequest就支持哪些语种。目前,可以支持的语种有:
Java、Go、Python、C#、C++
什么场景下,我该使用CommonRequest?
任何场景下,都可以使用CommonRequest,您可以自由选择调用方式。
除了前言中提到的场景外,下列场景下,我们建议您选用CommonRequest:
- 平台开发,用户可能会调用任意一个Api,CommonRequest可以免去您反射SDK代码或穷举编写的麻烦。
- 经典用法下,SDK的请求/应答字段与实际不符时。当然这种场景下也希望您能将具体的情况反馈给我们。
我该如何使用CommonRequest?
阿里云SDK文档中,提供了详细的使用方法和示例代码,具体的链接如下:
- Java:https://help.aliyun.com/document_detail/61469.html
- Go:https://help.aliyun.com/document_detail/66221.html
- Python:https://help.aliyun.com/document_detail/61476.html
- C#:https://help.aliyun.com/document_detail/61473.html
- C++:https://help.aliyun.com/document_detail/65189.html
CommonRequest的原理是什么?
简单来说,从代码结构上讲,各产品的SDK,其实是对CommonRequest的一种封装。
CommonRequest实现了所有阿里云 OpenApi的底层共用逻辑,例如:身份凭据维护、签名校验、域名路由等等,而特定的每个Api的请求与应答结构,则是基于CommonRequest的基础上,进行的开发/封装。
当然,"Talk is cheap, show me the code.",您可以直接在github上查看SDK以及CommonRequest的源码