概述
APICloud的 NODE SDK 是基于request构建. 它与APICloud开发的api进行交互,支持对象化操作,简化文件上传、多个文件上传、Relation相关操作,只需要在你的代码中做出一点点改变.
新手上路
首先需要引入模块,需要使用那部分就引用各自的模块。
npm install apicloud
如果把相关代码添加到项目中,则直接引入即可。
var Resource=Resource;var Push=Push;var Analytics=Analytics;
如果想要按照模块的方式使用,只需要把项目拷贝到node_modules里边即可,如修改文件夹名为APICloud
var Resource=Resource;var Push=Push;var Analytics=Analytics;
然后需要配置进行调用的对象
var resouce = "appId" "appKey";var push= "appId" "appKey";var analytics = "appId" "appKey";
最后就可以调用需要使用的方法,进行后续操作了。
//具体参数参考推送文档//{// "title":"",// "content":"",// "type":1,// "platform":0//}push;
//具体参数参考统计文档analytics;
//具体参数参考数据云文档//modelName为class名称var model=resouce;model
API
数据api
;
参数
appId:
- 类型:字符串
- 默认值:无
- 描述:应用的id,在APICloud上应用概览里获取,不能为空
appKey:
- 类型:字符串
- 默认值:无
- 描述:应用的安全校验Key,在APICloud上应用概览里获取,不能为空
url:
- 类型:字符串
- 默认值:无
- 描述:应用服务器地址,可为空,为空时默认为编译时的服务器地址
示例代码
var client = "appId" "appKey";
设置参数
;
参数
key:
- 类型:字符串
- 默认值:无
- 描述:header的名字
value:
- 类型:字符串
- 默认值:无
- 描述:header的值
示例代码
var client = "appId" "appKey";client;//注销以及ACL的时候需要设置authorization
生成一个对象实例
;
参数
className:
- 类型:字符串
- 默认值:无
- 描述:与您设置的classname保持一致
示例代码
var client = "appId" "appKey";var Model = client;
rest基本操作
增加
向对象插入一条数据 .save({body}, callback(ret,err))
body
value:
- 类型:JSON对象
- 默认值:无
- 描述:插入的键值对,与服务器上class中键值对应,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:插入成功后对应的该条数据在服务器的所有键值
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
删除
根据ID删除对象的一条数据
.delete({params}, callback(ret, err))
params
_id:
- 类型:字符串
- 默认值:无
- 描述:被删除数据的行ID,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息,成功返回{}空对象
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
更新
根据ID更新对象的一条数据
.save({params},{body},callback(ret, err))
params
id:
- 类型:字符串
- 默认值:无
- 描述:将要更新数据的行ID,不能为空
body
value:
- 类型:JSON
- 默认值:无
- 描述:将要更新的键值对,与服务器上class中键值对应,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:更新成功后对应的该条数据在服务器的所有键值
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
根据id获取数据
根据ID查找对象的一条数据
.get({params}, callback(ret, err))
params
_id:
- 类型:字符串
- 默认值:无
- 描述:被查找数据的行ID,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:查找成功后对应的该条数据在服务器的所有键值
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
查询所有数据
根据条件查找对象中所有符合条件的数据
.query({params}, callback(ret, err))
params
filter:
- 类型:JSON对象
- 默认值:无
- 描述:查询条件的键值对
callback(ret, err)
ret:
- 类型:JSON数组
- 描述:查找成功后对应的所有满足条件的数据
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
查询数据条数
根据条件返回对象下满足该条件的总记录数
.count({params}, callback(ret, err))
params
filter:
- 类型:JSON对象
- 默认值:无
- 描述:查询条件的键值对
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
判断对象是否存在
查询某对象/对象下某行是否存在
.exists({params}, callback(ret, err))
params
_id:
- 类型:字符串
- 默认值:无
- 描述:被查找数据的行ID,可为空,为空时返回对象是否存在
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
rest文件操作
文件上传
上传文件到云端file表里面
.save({body}, callback(ret, err))
body
value
- 类型:JSON对象
- 默认值:无
- 描述:提交的文件及相关数据,不能为空
- 内部字段:
file: //文件对象名称,file表为file,file字段则为具体名称 isFile:true, //标示对象是一个文件对象 isFileClass:true,//标示当前是对file表进行操作,file表作为Relation表的时候必须 path:'' //文件地址 values:{}//自定义字段或者filename ;
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息,服务器返回的数据
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
//对file表进行操作var File = client; api //多文件上传,一个表有多个file字段var bb = client;api //file表作为Relation表,isFileClass必须设置,否则无法上传var RelationFile = client;api
Relation相关操作
概述
主要用于对一张表中数据类型为Relation的列进行操作
增加
向对象的某关系列下插入一条内容
.save({params},{body}, callback(ret, err))
params
_id:
- 类型:字符串
- 默认值:无
- 描述:被插入对象ID,不能为空
_relation:
- 类型:字符串
- 默认值:无
- 描述:关系列的名称,对应服务器上的同名relation,不能为空
body
value:
- 类型:JSON对象
- 默认值:无
- 描述:插入的键值对,与服务器上class中键值对应,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
数据条数
查找对象某关系列下对应的数据总条数
.count({params}, callback(ret, err))
params
_id:
- 类型:字符串
- 默认值:无
- 描述:被查找对象ID,不能为空
_relation:
- 类型:字符串
- 默认值:无
- 描述:关系列的名称,对应服务器上的同名relation,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
获取
获取对象某关系列下对应的所有数据
.get({params}, callback(ret, err))
params
id:
- 类型:字符串
- 默认值:无
- 描述:被查找对象ID,不能为空
_relation:
- 类型:字符串
- 默认值:无
- 描述:关系列的名称,对应服务器上的同名relation,不能为空
callback(ret, err)
ret:
- 类型:JSON数组
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
删除
删除对象某关系列下对应的所有数据
.delete({params}, callback(ret, err))
params
id:
- 类型:字符串
- 默认值:无
- 描述:被删除对象ID,不能为空
_relation:
- 类型:字符串
- 默认值:无
- 描述:关系列的名称,对应服务器上的同名relation,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var Model = client; Model;
用户相关
概述
user对象提供用户独有操作,如登录、注销、发送重置密码邮件、发送验证邮件。
login
登录
.login({params}, callback(ret, err))
params
username:
- 类型:字符串
- 默认值:无
- 描述:用户名,不能为空
password:
- 类型:字符串
- 默认值:无
- 描述:密码,不能为空
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var User = client; User;
logout
注销登录
.logout(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
//注销以及ACL的时候需要设置authorizationclient;var User = client; User;
verify
发送验证邮件
.verify({params}, callback(ret, err))
params
email:
- 类型:字符串
- 默认值:无
- 描述:需要验证的邮箱
username:
- 类型:字符串
- 默认值:无
- 描述:需要验证的用户名
language:
- 类型:字符串
- 默认值:无
- 描述:邮件需要使用的语言,为了应多多语言,中文(zh_CN),英文(en_US)
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var User = client; User
reset
发送重置密码邮件
.reset({params}, callback(ret, err))
params
email:
- 类型:字符串
- 默认值:无
- 描述:需要验证的邮箱
username:
- 类型:字符串
- 默认值:无
- 描述:需要验证的用户名
language:
- 类型:字符串
- 默认值:无
- 描述:邮件需要使用的语言,为了应多多语言,中文(zh_CN),英文(en_US)
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var User = client; User
查询参数
示例代码
var Model = client; Model;
fields、limit、order、skip、where、include、includefilter相关参数请参考云api文档
批量查询
.batch(requests,callback(ret,err))
提示 batch为全局函数,即只能在Resouce对象上调用
示例
var client = "appId" "appKey";client
requests
- 类型:JSON对象数组
- 描述:每个对象是一个请求信息
示例
method为POST、PUT的时候需要在body内传值,为GET的时候不需要传递body path路径为相对路径
GET
"method": "GET" "path": "/mcm/api/company"
POST
"method": "POST" "path": "/mcm/api/company" "body": "name": "apicloud" "address": "北京市..."
callback(ret, err)
ret:
- 类型:JSON对象
- 描述:成功信息
err:
- 类型:JSON对象
- 描述:错误信息
示例代码
var requests= "method": "GET" "path": "/mcm/api/company" "method": "POST" "path": "/mcm/api/company" "body": "name": "apicloud" "address": "北京市..." client;
返回ret结果为一个顺序数组
//request 1的结果 //request 2的结果 ... //request N的结果
推送api
Message
Message为Push下的函数,主要是是用来推送信息。
参数
- jsonStr-推送消息的json对象,具体参数参考文档
返回值
- ret 返回信息
- err 错误信息
示例
//{// "title":"APICloud",// "content":"",// "type":1,// "platform":0//}push;
统计api
getAppStatisticDataById
getAppStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内的相关应用统计数据信息
参数
- startDate(必填)-字符串类型,开始日期
- endDate(必填)-字符串类型,结束日期
返回值
- ret 返回信息
- err 错误信息
示例
Analytics;
getVersionsStatisticDataById
getVersionsStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内相关应用各版本的统计数据信息
参数
- startDate(必填)-字符串类型,开始日期
- endDate(必填)-字符串类型,结束日期
返回值
- ret 返回信息
- err 错误信息
示例
Analytics;
getGeoStatisticDataById
getGeoStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内的应用下各版本地理分布统计数据信息
参数
- startDate(必填)-字符串类型,开始日期
- endDate(必填)-字符串类型,结束日期
- versionCode(必填)-字符串类型,版本号
返回值
- ret 返回信息
- err 错误信息
示例
Analytics;
getDeviceStatisticDataById
getDeviceStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内的应用下各版本设备信息分布统计数据信息
参数
- startDate(必填)-字符串类型,开始日期
- endDate(必填)-字符串类型,结束日期
返回值
- ret 返回信息
- err 错误信息
示例
Analytics.getDeviceStatisticDataById("2015-05-22", "2015-05-28",function(ret,err){ });
getExceptionsStatisticDataById
getExceptionsStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内的应用下各版本异常错误统计数据信息
参数
- startDate(必填)-字符串类型,开始日期
- endDate(必填)-字符串类型,结束日期
返回值
- ret 返回信息
- err 错误信息
示例
Analytics.getExceptionsStatisticDataById("2015-05-22", "2015-05-28",function(ret,err){ });
getExceptionsDetailByTitle
getExceptionsDetailByTitle为Analytics下的函数,该接口主要用于根据应用异常错误摘要获取异常错误详细信息
参数
- title(必填)-字符串类型,异常错误摘要
返回值
- ret 返回信息
- err 错误信息
示例
Analytics.getExceptionsDetailByTitle("2015-05-22", "2015-05-28",function(ret,err){ });