API接口是指应用程序编程接口,是两个程序之间约定好的通信方式。我们可以这样理解,两个人异地时需要通过电话线交换信息,而API就是两个程序之间交换数据的电话线。API的数据格式有两种,分别是json和xml。
<?php
class Response{
/**
* show方式可自由选择xml或json数据类型
* @param integer $code 状态码
* @param string $message 提示信息
* @param array $data 数据
* @param string $type 数据类型
* return string 返回值为json
*/
//静态方法,构造json数据
public static function show($code,$message='',$data=[],$type='json'){
if(!is_numeric($code)){
return '';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data
);
if ($type=='json') {
return self::json($result);
}
return self::xml($result);
}
/**
* json方式输出数据 只支持utf-8编码
* @param array $result api标准模式
* return string 返回值为json
*/
//静态方法,构造json数据
public static function json($result){
return json_encode($result);
}
/**
* xml方式输出数据
* @param array $result api标准模式
* @return string 返回值为xml
*/
public static function xml($result){
header("Content-Type:text/xml");
$xml = "<?xml version='1.0' encoding='UTF-8'?>";
$xml .= "<root>";
$xml .= self::xmlToEncode($result);
$xml .="</root>";
return $xml;
}
public static function xmlToEncode($result){
$xml = $attr = "";
foreach($result as $key => $value){
if (is_numeric($key)) {
$attr = " id='{$key}'";
$key = "item";
}
$xml .= "<{$key}{$attr}>";
// 递归数据数组
$xml .= is_array($value) ? self::xmlToEncode($value) : $value;
$xml .= "</{$key}>";
}
return $xml;
}
}
echo Response::show(200,'成功',['age'=>18,'name'=>['素浅','emily']],'xml');
END
技术以内 | 技术以外
技术栈 | 小感悟
效率工具 | 必备技能
你的效率有多高,决定你能跑多快