1. APP接口(通信接口)
- 接口地址:例如:http://app.com/api.php
- 接口文件:api.php处理一些业务逻辑(获取数据)
- 接口数据:获取数据,传到客户端进行使用
APP接口的核心在于接口文件
2. APP接口如何进行通信
客户端向服务器端发送http请求(用户不可视的接口地址),服务器端收到http请求之后根据请求做出相应的处理,处理结束后向客户端返回数据(数据一般为XML和JSON两种格式)。
3. XML数据及JSON数据
- XML数据
XML --> Extensible MarkupLanguage 扩展标记语言
用来标记语言数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML语言的节点可以自定义,HTML语言的节点(标签)不可以自定义,例如:<p>、<h>等。
XML语言格式统一,跨平台和语言。
<? xml version ="1.0" encoding = "UTF-8" ?>
<item>
<title>singwa</title>
<test id = "1" />
</item>
XML语言必须且只能拥有一个根节点<item>
- JSON数据
JSON --> JavaScript ObjectNotation
一种轻量级的数据交换格式,具有良好的可读性,便于快速编写。采用兼容性很高的,完全独立于语言的文本格式。
- XML与JSON的区别
可读性 | XML数据的可读性更强(结构清晰) |
生成数据方面(php生成XML及JSON) | JSON只使用一个函数,方便 |
传输速度 | JSON数据小,传输速度也快 |
4. APP接口功能
- 获取数据
从数据库中或缓存中获取数据,然后通过接口数据返回给客户端
- 提交数据
通过接口提交数据给服务器,然后服务器入库处理或做其他处理。提交数据的接口包含两种:版本升级接口和数据接收接口
5.
<?php
class Response{
public static function show($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=="array"){
var_dump($result);
}elseif($type=='xml'){
self::xmlEncode($code,$message,$data);
exit;
}
}
public static function json($code,$message,$data)
{
if(!is_numeric($code)){
return '';
}
$result = array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
return json_encode($result);
}
public static function xmlEncode($code,$message,$data)
{
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.="<root>\n";
$xml.=self::xmlToEncode($result);
$xml.="</root>";
return $xml;
}
public static function xmlToEncode($result)
{
$xml = "";
foreach($result as $key=>$value){
$xml.="<{$key}>";
$xml.=is_array($value)?self::xmlToEncode($value):$value;
$xml.="</{$key}>\n";
}
return $xml;
}
}
$data = array(
'id'=>1,
'name'=>'zhuiyi',
);
echo Response::json(200,'success',$data);
?>
json数据
xml数据