|
本帖最后由 八妖 于 2014-11-13 09:02 编辑
class APICloud {
var $AppID = '自己的APPID';
var $AppKey = '自己的APPKEY';
var $AppPath = 'https://d.apicloud.com/mcm/api/';
var $timeOut = 30;
function APICloud()
{
$this->headerInfo = array(
'Content-Type:application/json',
'X-APICloud-AppId:'.$this->AppID,
'X-APICloud-AppKey:'.$this->getSHAKey()
);
}
function getSHAKey()
{
$time = $this->getMilliSecond();
return sha1($this->AppID.'UZ'.$this->AppKey.'UZ'.$time).'.'.$time;
}
//毫秒
function getMilliSecond()
{
list($s1, $s2) = explode(' ', microtime());
return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);
}
function getAll($tableName)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $this->AppPath.$tableName);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $this->headerInfo);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
$result = curl_exec($ch);
return $result;
}
function editItem($tableName,$itemId,$data=array())
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $this->AppPath.$tableName.'/'.$itemId);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $this->headerInfo);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
$result = curl_exec($ch);
return $result;
}
function addItem($tableName,$data=array())
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $this->AppPath.$tableName);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $this->headerInfo);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
$result = curl_exec($ch);
return $result;
}
function delItem($tableName,$itemId)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $this->AppPath.$tableName.'/'.$itemId);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $this->headerInfo);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $this->timeout);
$result = curl_exec($ch);
return $result;
}
}
//测试
$test = new APICloud();
//查询列表
print_r(json_decode($test->getAll('user')));
//修改
$data = array('gender'=>"男");
print_r($test->editItem('user','5446395edbebb69b6165258f',$data));
//新增user
$newData = array('gender'=>"男",'username'=>"新增加",'password'=>"111");
print_r($test->addItem('user',$newData));
//删除user
print_r($test->delItem('user','5463f6d85845c00e5c32978b'));
测试数据库使用的是o2o中的user表。
看到有人分享C#操作MCM中的Model,就试着模仿弄了个PHP版的,测试成功,实际使用起来,感觉Restful API还是有很多要加强的,比如查询的过滤啊,字段的过滤啊,比如关联啊。。等等等等。 期待更新。
程序菜鸟,刚上手,请轻喷。。
|
|