最近开始学习了APP接口,对此写下博客作为自己的一个总结分析。
一、json方式封装通信接口
1.那么php是如何生成json数据的呢?其实方法很简单,一个json_encode()函数就可以搞定!
注意:json_encode函数只能接收utf-8数据,对于其他格式的编码它是不能产生json数据的,只能返回null;
我们可以用函数iconv()用户字符串的编码转换,其中函数含有三个参数,(原始编码,转换的彪编码,变量名);
2.通信数据的 标准格式
code 状态码(200,400等),标识服务端的状态
message 提示信息(数据返回成功等)
data 返回数据
了解了这些,接下来是代码封装:
<?php
class Response
{
/**
* [json<font size="3"><span style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:14px;">方式封装通信接口</span></span></span></font>]
* @param [type] $code [状态码]
* @param string $message [提示信息]
* @param array $data [数据]
* @return [type] [string]
*/
public static function json($code,$message='',$data=array()){
//判断是否为数字或字符串
if(!is_numeric($code)){
return '';
}
//定义数组变量
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
//产生json数据
echo json_encode($result);
exit;
}
}
新建文件调用json方法
<?php
//加载类文件
require_once('./a.php');
$arr=array(
'id'=>1,
'name'=>'mpk'
);
//调用json方法
Response::json(200,'数据返回成功',$arr);
返回json数据;
{"code":200,"message":"\u6570\u636e\u8fd4\u56de\u6210\u529f","data":{"id":1,"name":"mpk"}}
OK!我们的 json方式封装通信接口完成!
接下来这是我们比较成熟的一个封装类,它是通过json和xml综合封装的通信数据
class Response
{
const JSON="json";
public static function show($code,$message='',$data=array(),$type=self::JSON){
if(!is_numeric($code)){
return "";
}
$type=isset($_GET['form'])?$_GET['form']:self::JSON;
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
if($type=='json'){
self::json($code,$message,$data);
exit;
}elseif ($type=='array') {
# code...
var_dump($result);
}elseif ($type=='xml') {
# code...
self::xmlEncode($code,$message,$data);
exit;
}else{
//......
}
}
加载类文件
//加载类文件
require_once('./a.php');
$arr=array(
'id'=>1,
'name'=>'mpk',
'type'=>array(4,5,6),
'test'=>array(7,9,11=>array(123,'mmm'))
);
//调用数据方法
Response::show(200,'数据返回成功',$arr);
我们可以根据需要的格式在访问路径时后缀添加?form=“类型“,比如www.app.com/text.php?form=xml