APP接口简介
封装通信接口的方法:
服务器端->数据库 |缓存 ->调用接口->客户端
APP接口介绍:
APP(通信)接口定义:
接口地址:http:xxxxx
接口文件 :api.php处理一些业务逻辑
接口数据:xml格式或者json
但是现在一般都是json了吧。。
php(json)
json_encode($arr);
php(xml)
header("content-type:text/xml");
$result . = "<?xml version='1.0' encoding='utf-8'?>\n";
...
或者
$dom = new DomDocument('1.0','utf-8');
....
或者
xmlWriter
或者
SimpleXML(好像学过,给忘了)
json封装数组的时候,json_encode只能接受UTF-8的数据,其他数据会返回null
通信数据的标准格式:
code :状态码 (200.400等)
message: 提示信息(邮箱格式不存在等)
data:返回数据
<?php
/**
* 按json方式输出通信
*/
class Response
{
function __construct(argument)
{
# code...
}
/*
* 按json方式输出通信数据
*/
public static function json($code,$message,$data=array()){
if(!is_numeric($code)){
return '';
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
echo json_encode($result);
exit;
}
/*
*按xml的方式输出通信数据(demo)
*/
public static function xml(){
$xml = "<?xml version='1.0' encoding='utf-8'>\n";
$xml .="<root>\n";
$xml .="<code>200</code>\n";
$xml .="<message>数据返回成功</message>\n";
$xm .="</root>\n";
}
/*
*封装xml的方法
*/
public static function xmlEncode($code,$message){
if(!is_numeric($code)){
return '';
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
header("Content-Type:text/xml");
$xml = "<?xml version='1.0' encoding='utf-8'>\n";
$xml .= self::xmltoEncode($message);
$xml = "</xml>";
echo $xml;
}
public static function xmltoEncode($msg){
$xml = "";
foreach ($data as $key => $value) {
# code...
$xml .="<".$key.">";
$xml .=is_array($value)?self::xmltoEncode($value):$value;
$xml .="</".$key.">";
}
return $xml;
}
/*
*综合封装的方法
*/
public static function send($code,$message='',$data=array(),$type){
if(!is_numeric($code)){
return '';
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
if($type=='json'){
self::json($code,$message,$data);
exit;
}elseif($type='test'){
var_dump($result);
}elseif($type=='xml'){
self::xmlEncode($code,$message,$data);
}else{
//...TODO
}
}
}