npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

apicloud

v1.0.4

Published

APICloud SDK

Downloads

16

Readme

###概述

APICloud的 NODE SDK 是基于request构建. 它与APICloud开发的api进行交互,支持对象化操作,简化文件上传、多个文件上传、Relation相关操作,只需要在你的代码中做出一点点改变.

###新手上路


首先需要引入模块,需要使用那部分就引用各自的模块。

npm install apicloud

如果把相关代码添加到项目中,则直接引入即可。

var Resource=require("APICloud").Resource;
var Push=require("APICloud").Push;
var Analytics=require("APICloud").Analytics;

如果想要按照模块的方式使用,只需要把项目拷贝到node_modules里边即可,如修改文件夹名为APICloud

var Resource=require("APICloud").Resource;
var Push=require("APICloud").Push;
var Analytics=require("APICloud").Analytics;

然后需要配置进行调用的对象

var resouce = new Resource("appId", "appKey");
var push= new Push("appId", "appKey");
var analytics = new Analytics("appId", "appKey");

最后就可以调用需要使用的方法,进行后续操作了。

//具体参数参考推送文档
//{
//  "title":"",
//  "content":"",
//  "type":1,
//  "platform":0
//}
push.Message(jsonStr,function(ret,err){
  
});
//具体参数参考统计文档
analytics.getAppStatisticDataById("2015-05-22", "2015-05-28",function(ret,err){
  
});
//具体参数参考数据云文档
//modelName为class名称
var model=resouce.Factory(modelName);
model.Get(function(ret,err){
  
})

###API

####数据api

Resource("appId", "appKey","url");

####参数

appId:

  • 类型:字符串
  • 默认值:无
  • 描述:应用的id,在APICloud上应用概览里获取,不能为空

appKey:

  • 类型:字符串
  • 默认值:无
  • 描述:应用的安全校验Key,在APICloud上应用概览里获取,不能为空

url:

  • 类型:字符串
  • 默认值:无
  • 描述:应用服务器地址,可为空,为空时默认为编译时的服务器地址

####示例代码

var client = new Resource("appId", "appKey");

###设置参数

.setHeaders("key", "value");

####参数

key:

  • 类型:字符串
  • 默认值:无
  • 描述:header的名字

value:

  • 类型:字符串
  • 默认值:无
  • 描述:header的值

####示例代码

var client = new Resource("appId", "appKey");
client.setHeaders("authorization",'token');//注销以及ACL的时候需要设置authorization

###生成一个对象实例

.Factory("className");

####参数

className:

  • 类型:字符串
  • 默认值:无
  • 描述:与您设置的classname保持一致

####示例代码

var client = new Resource("appId", "appKey");
var Model = client.Factory("modelName");

##rest基本操作

###增加

向对象插入一条数据 .save({body}, callback(ret,err))

####body

value:

  • 类型:JSON对象
  • 默认值:无
  • 描述:插入的键值对,与服务器上class中键值对应,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:插入成功后对应的该条数据在服务器的所有键值

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码


var Model = client.Factory("modelName");

Model.save({"username": username, "password": password,email:email}, function (ret,err) {
  console.log("Model insert:"+JSON.stringify(ret))
  console.log("Model insert:"+JSON.stringify(err))
});

###删除

根据ID删除对象的一条数据

.delete({params}, callback(ret, err))

####params

_id:

  • 类型:字符串
  • 默认值:无
  • 描述:被删除数据的行ID,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息,成功返回{}空对象

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码


var Model = client.Factory("modelName");

Model.delete({
  "_id": "{{you id}}"
}, function (ret,err) {
  console.log("aa all delete:"+JSON.stringify(ret));
});

###更新

根据ID更新对象的一条数据

.save({params},{body},callback(ret, err))

####params

id:

  • 类型:字符串
  • 默认值:无
  • 描述:将要更新数据的行ID,不能为空

####body

value:

  • 类型:JSON
  • 默认值:无
  • 描述:将要更新的键值对,与服务器上class中键值对应,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:更新成功后对应的该条数据在服务器的所有键值

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.save({"_id":id},{email:email,emailVerified:true},function(ret,err){
    console.log("Model update:"+JSON.stringify(ret));
});

###根据id获取数据

根据ID查找对象的一条数据

.get({params}, callback(ret, err))

####params

_id:

  • 类型:字符串
  • 默认值:无
  • 描述:被查找数据的行ID,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:查找成功后对应的该条数据在服务器的所有键值

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.get({"_id": id}, function (ret,err) {
    console.log("Model get:"+JSON.stringify(ret))
});

###查询所有数据

根据条件查找对象中所有符合条件的数据

.query({params}, callback(ret, err))

####params

filter:

  • 类型:JSON对象
  • 默认值:无
  • 描述:查询条件的键值对

####callback(ret, err)

ret:

  • 类型:JSON数组
  • 描述:查找成功后对应的所有满足条件的数据

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.query(function (ret,err) {
    console.log("Model query:"+JSON.stringify(ret))
});

###查询数据条数

根据条件返回对象下满足该条件的总记录数

.count({params}, callback(ret, err))

####params

filter:

  • 类型:JSON对象
  • 默认值:无
  • 描述:查询条件的键值对

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.count(function (ret,err) {
    console.log("Model count:"+JSON.stringify(ret))
});

###判断对象是否存在

查询某对象/对象下某行是否存在

.exists({params}, callback(ret, err))

####params

_id:

  • 类型:字符串
  • 默认值:无
  • 描述:被查找数据的行ID,可为空,为空时返回对象是否存在

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.exists(function (ret,err) {
    console.log("Model exists:"+JSON.stringify(ret))
});

##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.Factory("file");

api.getPicture({},function(ret,err){
    File.save({file:{isFile:true,path:ret.data,values:{filename:"头像.png"}}},function(data,err){
        alert("file:\t"+JSON.stringify(data));
        alert("file:\t"+JSON.stringify(err));
    })
})

//多文件上传,一个表有多个file字段
var bb = client.Factory("bb");
api.getPicture({},function(ret,err){
    var path1=ret.data;
    api.getPicture({},function(ret,err){
    var path2=ret.data;
    bb.save({file1:{isFile:true,path:path1},file2:{isFile:true,path:path2}},function(data,err){
            alert(JSON.stringify(data));
        })
  });
})

//file表作为Relation表,isFileClass必须设置,否则无法上传
var RelationFile = client.Factory("relationFile");
api.getPicture({},function(ret,err){
    RelationFile.save({"_id":"{{id}}","_relation":"{{relationName}}"},{file:{isFileClass:true,isFile:true,path:ret.data}},function(data,err){
        alert("file:\t"+JSON.stringify(data));
        alert("file:\t"+JSON.stringify(err));
    })
})

##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.Factory("modelName");

Model.save({"_id":"xxxxxxxxxxxxxx","_relation":"many"},{"username": username, "password": password,email:email}, function (ret,err) {
  console.log("Model insert:"+JSON.stringify(ret))
  console.log("Model insert:"+JSON.stringify(err))
});

###数据条数

查找对象某关系列下对应的数据总条数

.count({params}, callback(ret, err))

####params

_id:

  • 类型:字符串
  • 默认值:无
  • 描述:被查找对象ID,不能为空

_relation:

  • 类型:字符串
  • 默认值:无
  • 描述:关系列的名称,对应服务器上的同名relation,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.count({"_id":"xxxxxxxxxxxxxx","_relation":"many"}, function (ret,err) {
  console.log("Model count:"+JSON.stringify(ret))
  console.log("Model count:"+JSON.stringify(err))
});

###获取

获取对象某关系列下对应的所有数据

.get({params}, callback(ret, err))

####params

id:

  • 类型:字符串
  • 默认值:无
  • 描述:被查找对象ID,不能为空

_relation:

  • 类型:字符串
  • 默认值:无
  • 描述:关系列的名称,对应服务器上的同名relation,不能为空

####callback(ret, err)

ret:

  • 类型:JSON数组
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码


var Model = client.Factory("modelName");

Model.get({"_id":"xxxxxxxxxxxxxx","_relation":"many"}, function (ret,err) {
  console.log("Model count:"+JSON.stringify(ret))
  console.log("Model count:"+JSON.stringify(err))
});

###删除

删除对象某关系列下对应的所有数据

.delete({params}, callback(ret, err))

####params

id:

  • 类型:字符串
  • 默认值:无
  • 描述:被删除对象ID,不能为空

_relation:

  • 类型:字符串
  • 默认值:无
  • 描述:关系列的名称,对应服务器上的同名relation,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var Model = client.Factory("modelName");

Model.delete({"_id":"xxxxxxxxxxxxxx","_relation":"many"}, function (ret,err) {
  console.log("Model count:"+JSON.stringify(ret))
  console.log("Model count:"+JSON.stringify(err))
});

##用户相关

####概述 user对象提供用户独有操作,如登录、注销、发送重置密码邮件、发送验证邮件。

###login

登录

.login({params}, callback(ret, err))

####params

username:

  • 类型:字符串
  • 默认值:无
  • 描述:用户名,不能为空

password:

  • 类型:字符串
  • 默认值:无
  • 描述:密码,不能为空

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var User = client.Factory("user");

User.login({username: username, password: password}, function (ret,err) {
  console.log("user.login:"+JSON.stringify(ret))
  console.log("user.login:"+JSON.stringify(err))
});

###logout

注销登录

.logout(callback(ret, err))

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

//注销以及ACL的时候需要设置authorization
client.setHeaders("authorization",$api.getStorage('token'));
var User = client.Factory("user");

User.logout({token: token}, function (ret,err) {
    console.log("user.logout:"+JSON.stringify(ret))
});

###verify

发送验证邮件

.verify({params}, callback(ret, err))

####params

email:

  • 类型:字符串
  • 默认值:无
  • 描述:需要验证的邮箱

username:

  • 类型:字符串
  • 默认值:无
  • 描述:需要验证的用户名

language:

  • 类型:字符串
  • 默认值:无
  • 描述:邮件需要使用的语言,为了应多多语言,中文(zh_CN),英文(en_US)

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var User = client.Factory("user");

User.verify({"email":email, "language":"zh_CN", "username":username},function(ret,err){
    console.log("verify ret:\t"+JSON.stringify(ret))
})

###reset

发送重置密码邮件

.reset({params}, callback(ret, err))

####params

email:

  • 类型:字符串
  • 默认值:无
  • 描述:需要验证的邮箱

username:

  • 类型:字符串
  • 默认值:无
  • 描述:需要验证的用户名

language:

  • 类型:字符串
  • 默认值:无
  • 描述:邮件需要使用的语言,为了应多多语言,中文(zh_CN),英文(en_US)

####callback(ret, err)

ret:

  • 类型:JSON对象
  • 描述:成功信息

err:

  • 类型:JSON对象
  • 描述:错误信息

####示例代码

var User = client.Factory("user");

User.reset({"email":email, "language":"zh_CN", "username":username},function(ret,err){
    console.log("reset ret:\t"+JSON.stringify(ret))
})

##查询参数

####示例代码


var Model = client.Factory("modelName");

Model.query({filter:{
	where:{},
	skip:0,
	limit:10,
	order:"id DESC",
	include:"relation"
}}, function (ret,err) {
  console.log("Model count:"+JSON.stringify(ret))
  console.log("Model count:"+JSON.stringify(err))
});

fields、limit、order、skip、where、include、includefilter相关参数请参考云api文档

##批量查询

.batch(requests,callback(ret,err))

提示 batch为全局函数,即只能在Resouce对象上调用

示例

var client = new Resource("appId", "appKey");
client.batch()

####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.batch(requests, function (ret,err) {
  console.log("batch:"+JSON.stringify(ret))
  console.log("batch:"+JSON.stringify(err))
});

返回ret结果为一个顺序数组

[
 {
    //request 1的结果 
 },
 [
    //request 2的结果
 ],
 ...
 {
     //request N的结果
 }   
]

####推送api

#####Message

Message为Push下的函数,主要是是用来推送信息。

参数

  • jsonStr-推送消息的json对象,具体参数参考文档

返回值

  • ret 返回信息
  • err 错误信息

示例

//{
//  "title":"APICloud",
//  "content":"",
//  "type":1,
//  "platform":0
//}
push.Message(jsonStr,function(ret,err){
  
});

####统计api

#####getAppStatisticDataById

getAppStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内的相关应用统计数据信息

参数

  • startDate(必填)-字符串类型,开始日期
  • endDate(必填)-字符串类型,结束日期

返回值

  • ret 返回信息
  • err 错误信息

示例

Analytics.getAppStatisticDataById("2015-05-22", "2015-05-28",function(ret,err){
  
});

#####getVersionsStatisticDataById

getVersionsStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内相关应用各版本的统计数据信息

参数

  • startDate(必填)-字符串类型,开始日期
  • endDate(必填)-字符串类型,结束日期

返回值

  • ret 返回信息
  • err 错误信息

示例

Analytics.getVersionsStatisticDataById("2015-05-22", "2015-05-28",function(ret,err){
  
});

#####getGeoStatisticDataById

getGeoStatisticDataById为Analytics下的函数,该接口主要用于获取用户指定应用ID及时间范围内的应用下各版本地理分布统计数据信息

参数

  • startDate(必填)-字符串类型,开始日期
  • endDate(必填)-字符串类型,结束日期
  • versionCode(必填)-字符串类型,版本号

返回值

  • ret 返回信息
  • err 错误信息

示例

Analytics.getGeoStatisticDataById("2015-05-22", "2015-05-28","",function(ret,err){
  
});

#####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){
  
});