TOP-SDK使用说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动化SDK使用指南
目录
一、新SDK的介绍 (1)
二、为什么要使用最新的SDK (1)
三、如何使用最新的SDK (2)
1、新SDK的目录结构 (2)
2、SDK命名规则 (3)
3、SDK使用代码示例(java版,php版,.net版) (3)
4、高级功能 (6)
四、下载SDK的地址 (6)
一、新SDK的介绍
淘宝开放平台最新的SDK是由程序通过API的结构、业务数据等自动化生成的代码包,目前支持主流的三种语言版本(java、php、.net)。是淘宝开放平台为了减少广大开发者使用API的开发成本而提供的一种开发工具包,其中包含了已经开放的API的请求、加密、返回解析等一些必要的功能。
二、为什么要使用最新的SDK
最新的自动化SDK区别之前的版本(前期为人工手写的代码),有着以
下多种优势:
1、SDK代码全自动化生成,完全和对外公开的API文档一致
2、自动化生成,避免人工编写产生的Bug
3、在每次API升级发布后,会及时自动升级各语言SDK版本,并向下保持
兼容
4、SDK提供了一些基本协议级的封装,提高API访问成功率
5、错误日志自动打印,错误发生时可完全收集现场数据
三、如何使用最新的SDK
1、新SDK的目录结构
JAVA SDK目录结构
.NET SDK目录结构
2、SDK命名规则
a)数据结构类名与API线上文档中完全一样
b)API请求类名:去掉api名字中的”taobao”,把”.”后的首字母大写,
再掉所有的”.”号,并加上”Request”,即为最终的类名。比如
er.get对应的请求类的类名为UserGetRequest。
c)API返回结果类名:去掉api名字中的”taobao”,把”.”后的首字母
大写,再掉所有的”.”号,并加上”Response”,即为最终的类名。比
如er.get对应的响应类的类名为UserGetResponse。
3、SDK使用代码示例(java版,php版,.net版)
JAVA版本
●不需要登录(sessionKey)的API调用
T aobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
UserGetRequest req = new UserGetRequest();
req.setFields("nick,sex,buyer_credit,seller_credit ,created,last_visit");
req.setNick("hz0799");
UserGetResponse response = client.execute(req);
if (response.isSuccess()) {
System.out.println(response.getUser().getNick());
} else {
// deal error
}
●需要登录(sessionKey)的API调用
client.execute(req, sessionKey);
●有文件上传的API调用
FileItem img = new FileItem(file);// FileItem为SDK包里封装好的一个类
itemAddRequest.setImage(img);
PHP版本
⏹实例化API Client
//实例化TopClient类
$c = new TopClient;
$c->appkey = "你的appkey";
$c->secretKey = "你的secret code";
⏹不需要登录(sessionKey)的API调用
/**********************************
* OOP风格的使用方式,下面还有传统的数组方式
**********************************/
//实例化具体API对应的Request类
$req = new UserGetRequest;
$req->setFields("nick,sex,buyer_credit,seller_credit");
$req->setNick("hz0799");
//执行API请求并打印结果
$resp = $c->execute($req);
⏹需要登录(sessionKey)的API调用
//实例化具体API对应的Request类
$req = new UserGetRequest;
$req->setFields("nick,sex,buyer_credit,seller_credit, birthday");//这行和上面不
同,登录用户可以获取隐私字段
$req->setNick("hz0799");
//执行API请求并打印结果
$resp = $c->execute($req, $sessionKey);//这行和上面不同
⏹有文件上传的API调用
$req = new TaobaoItemImgUploadRequest;
$req->setNumIid(12345678);
$req->setImage('@C:\my_picture\item_1.jpg');//附件上传的机制参见PHP CURL
文档,在文件路径前加@符号即可
$resp = $c->execute($req);
print_r($resp);
⏹传统的数组方式调用(适合已有APP迁移到PHP SDK的客户)
/**********************************
* 非OOP风格的使用方式, 兼容已有的PHP应用
**********************************/
$req_array = array(
"method" => "taobao.items.search",
"fields" => "iid,title",
"q" => "ipad",
"page_size" => 3,
"location.city" => "杭州"
);
$resp = $c->exec($req_array);
print_r($resp);
.NET版本
⏹不需要登录(sessionKey)的API调用
ITopClient client = new DefaultTopClient("url", "appkey", "appsecret");
UserGetRequest req = new UserGetRequest();
req.Fields = "user_id,nick,created,buyer_credit,type,sex";
req.Nick = "helloworld";
UserGetResponse rsp = client.Execute(req);
if (rsp.IsError)
{
Console.WriteLine(rsp.Body);
}
⏹需要登录(sessionKey)的API调用
ITopClient client = new DefaultTopClient("url", "appkey", "appsecret");
TradeGetRequest req = new TradeGetRequest();
req.Fields = “tid,seller_nick,buyer_nick”;
req.Tid = 129318293L;
TradeGetResponse rsp = client.Execute(req, sessionKey);
⏹有文件上传的API调用