apicloud apicloud

注册
查看: 10157|回复: 23

[APP开发技巧] 【分享】JS通过Ajax调用数据云API的REST接口的方法

 

主题:
18
帖子:
59
云币:
781

[APP开发技巧] 【分享】JS通过Ajax调用数据云API的REST接口的方法

 
10157 23 | 发表于 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.         });
复制代码

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

1

查看全部评分

实习司机

UID:14950

主题:
32
帖子:
113
云币:
173
发表于 2014-12-28 12:54:31 |
沙发。。。好东西

主题:
14
帖子:
114
云币:
561
发表于 2014-12-29 00:03:50 |
好东西。。。

驾校小白

UID:22072

主题:
0
帖子:
5
云币:
35
发表于 2015-1-24 19:54:33 |
收藏

主题:
2
帖子:
5
云币:
9
发表于 2015-1-25 08:30:23 |
兄弟,刚在纠结这个你就弄来了。。太感谢了。。sha1.js 这个太关键了。。似乎文档里也看见官方说。。

主题:
2
帖子:
5
云币:
9
发表于 2015-1-25 08:44:31 |
怎么感觉数据云API的请求速度好慢。。。

主题:
3
帖子:
22
云币:
26
发表于 2015-7-2 08:01:50 |
好牛逼 大神。

主题:
70
帖子:
295
云币:
581

捣蛋鬼

发表于 2015-7-13 09:40:08 |
谢谢分享

新手上路

UID:124789

主题:
14
帖子:
99
云币:
533
发表于 2015-9-3 14:02:21 |
paraVal是什么啊? is not defined at   .........

业余车手

UID:22414

主题:
8
帖子:
815
云币:
12667

版主勋章APICloud粉丝

发表于 2015-9-17 11:04:38 |
感谢分享
123下一页
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表