简介
什么时候需要写app接口,在app客户端,很多地方需要调用数据,这个时候就需要用接口来调用数据库的数据,在与客户端对接,把数据返回给客户端
数据库->数据库|缓存->调用接口->客户端;
APP接口介绍
app通信接口定义需要三部分:
I:接口地址:如http://app.com/api.PHP?format=xml;
II:接口文件:如api.php处理一些业务逻辑;
III:接口数据;
app如何通讯:
->发送http请求(http://app.com/api.php?format=xml;) ↓
客户端-> <- 服务器
↑ 返回数据 (比较常用的是XML,JSON) <-
XML和JSON格式的区别
XML:扩展标记语言(里面的标签可以自己定义)XML格式统一。跨平台、跨语言。非常适合通信和传输,已成为业界标准。
特点
①必须有一个根节点,且只能有一个根节点,不能有两个。
②结束标签。<test></test> 和<test />都可以
③节点可以自定义
④XML:可读性很高
JSON:是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换.兼容性高,完全独立于语言文本格式.
两种形式:字符串和数组,因为字符串不便于理解一般用数组模式传数据;
特点:
key=>val;{"code":200,"message":"\u6210\u529f\u8fd4\u56de\u6570\u636e","data":{"id":"1","name":"\u5218\u9526\u9f99","type":[4,8,12],"test":{"0":4,"1":44,"88":[2312,"paw"],"name":"hah","asd":"qwe"}}};
JSON:生成数据更方便 只需要json_encode()就可以
JSON:传输速度更快
app接口主要作用:
①获取数据:从数据库或缓存中获取数据,然后通过接口数据返回给客户端.
②提交数据:通过接口提交数据给服务器,然后服务器入库处理等.
JSON方式封装通信接口:
①json数据的转换只需要用一个函数json_encode;(该函数只接受UTF-8编码数据,如果不是则返回空值;)
②通信数据标准格式: code:状态码; message:提示信息; data:返回数据;
③判断状态码是否正确;
④直接调用这个方法,返回数据,则调取接口成功;
}
?>
XML方式封装通信接口:
首先学习一下生成XML数据,用字符组装
public static function xml(){ header("Content-Type:text/xml");//转换访问类型 $xml="<?xml version='1.0' encoding='UTF-8'?>\n";//xml头信息 $xml.="<root>\n"; $xml.="<code>200</code>\n";
$xml.="</root>"; echo $xml; }
?>
封装xml通信接口:
①封装方式和json方法类似;首先需要通信数据标准格式: code:状态码; message:提示信息; data:返回数据;
②判断状态码是否正确;
③为了正确显示数组数据,需要封装一个方法来处理数组,xmlToEncode;
④访问成功,返回数据;
综合方式封装接口
为了区分需要返回的接口类型;在访问之前先判断一下类型再调用;
const JSON='json'; public static function show($code,$message='',$data=array(),$type=self::JSON){ if(!is_numeric($code)){ return ''; } $type=isset($_GET['format'])?$_GET['format']:self::JSON; $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); }else{ //TODO; } }