帖子
帖子
用户
博客
课程
123下一页
返回列表 发新帖
显示全部楼层
18
帖子
0
勋章
787
Y币

【分享】JS通过Ajax调用数据云API的REST接口的方法

  [复制链接]
发表于 2014-12-27 16:45:11
本帖最后由 fly51fly 于 2014-12-27 17:06 编辑

假设我们的问题是:1、要查询叫XXX_class的类,该类有名为xxx的pointer型字段指向另外一个class;
2、查询条件是yyy字段的值等于paraVal
3、查询结果按createdAt倒序排列(最常用的形式);
4、数据分页要求:每页limit条,当前第page

用JS通过Ajax调用数据云API的REST接口获取数据的方法如下(已包含必要的解释):
  1.    var appId = 'X0000000000000';
  2.         var appKey = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
  3.         var host = 'https://d.apicloud.com';
  4.         var now = Date.now();
  5.         var AppKey = hex_sha1(appId + "UZ" + appKey + "UZ" + now) + "." + now; //调用hex_sha1函数要先包含附件的sha1.js文件
  6.         var appPath = '/mcm/api/XXX_class';  //XXX_class是你要查询的类
  7.         var getParam = '?filter[order]=createdAt DESC'; //此处不必用%20替换空格,正序则用ASC
  8.         getParam += '&filter[where][yyy]=' + paraVal; //查询条件
  9.         getParam += '&filter[limit]=' + limit;  
  10.         getParam += '&filter[skip]=' + page*limit; //limit和skip一起定义数据分页
  11.         getParam += '&filter[include]=xxxPointer'; //xxx为pointer字段,则包含时要用xxxPointer,查询结果中名称仍然是xxx,这里要注意
  12.         api.ajax({
  13.             url: host + appPath + getParam,
  14.             method: 'get',
  15.             cache: false,
  16.             timeout: 20,
  17.             dataType: 'json',
  18.             returnAll:false,
  19.             headers:{
  20.                 "X-APICloud-AppId": appId,
  21.                 "X-APICloud-AppKey": AppKey
  22.             }  //通过头信息进行认证
  23.         },function(ret,err){
  24.             if (ret) {
  25.                 api.alert({msg: JSON.stringify(ret)});
  26.             }else {
  27.                 var err_msg = '错误码:'+err.code+';错误信息:'+err.msg+'网络状态码:'+err.statusCode;
  28.                 api.toast({msg: err_msg, location: 'middle'});
  29.             };
  30.         });
复制代码

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
33
帖子
0
勋章
185
Y币
沙发。。。好东西
14
帖子
0
勋章
561
Y币
好东西。。。
0
帖子
0
勋章
35
Y币
收藏

兄弟,刚在纠结这个你就弄来了。。太感谢了。。sha1.js 这个太关键了。。似乎文档里也看见官方说。。

怎么感觉数据云API的请求速度好慢。。。
3
帖子
0
勋章
28
Y币
好牛逼 大神。
71
帖子
2
勋章
2159
Y币
谢谢分享
14
帖子
0
勋章
537
Y币
paraVal是什么啊? is not defined at   .........
8
帖子
0
勋章
1万+
Y币
感谢分享
123下一页
您需要登录后才可以回帖 登录

本版积分规则