您的位置:首页 > 其它

api接口返回统一数据格式 status、message、data

2017-08-08 16:30 1491 查看
/**
* [apiReturn 用于给app提供接口使用 带有请求结果状态表示,和结果提示,默认返回json]
* @param  [number] $status  [请求结果的状态标识,设定后要在文档中给予说明]
* @param  string $message [请求结果的提示语句]
* @param  [array] $data    [请求返回的数据,app前端需要的数据]
* @param  [string] $type    [要返回的数据类型,支持json,xml,默认返回json]
* @return [json或xml]          [返回数据]
*/
protected function apiReturn($status, $message = '', $data, $type)
{

if (!is_numeric($status) || !is_string($message)) {
$this->apiReturn('400', '参数错误');
}
$res = array();
$res['status'] = $status;
$res['message'] = $message;
$res['data'] = $data;

if (in_array($type, array('json', 'xml'))) {
$this->ajaxReturn($res, $type);
} else {
$this->ajaxReturn($res);
}

}


function ajaxReturns($data,$type='') {
if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');
switch (strtoupper($type)){
case 'JSON' :
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($data));
case 'XML' :
// 返回xml格式数据
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($data));
case 'JSONP':
// 返回JSON数据格式到客户端 包含状态信息
header('Content-Type:application/json; charset=utf-8');
$handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
exit($handler.'('.json_encode($data).');');
case 'EVAL' :
// 返回可执行的js脚本
header('Content-Type:text/html; charset=utf-8');
exit($data);
default :
// 用于扩展其他返回格式数据
Hook::listen('ajax_return',$data);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐