app接口总结
来源:互联网 发布:ac68u 广电网络 编辑:程序博客网 时间:2024/05/16 09:15
一:app接口简介
那么首先app通信接口需要有三部分
1、接口地址(它的作用就是为了让客户端发送请求的)
2、接口文件(处理一些逻辑业务)
3、接口数据
二:客户端通信
当用户点击一个功能的时候就会去访问一个接口地址,这个接口就会返回一些xml或json的数据
三:xml 格式的数据和json格式的数据的区别
1、从可读性方面来说xml格式的数据更加的清晰而json格式的数据看起来相对就比较乱了
2、从生成数据方面json格式的数据是比较简单的它只用一个函数:json_encode()
就可以实现了。而xml格式的数据就比较麻。
3、从数据传输速度方面来说json格式的数据比较快
四:app接口做的那些事
从数据库或缓存中获取数据,然后通过接口数据返回给客户端
通过接口提交数据给服务器,然后服务器入库处理,或做其他处理
五:json方式封装通信接口
创建接口文件Response.php
<?phpclass Response{ /* *按json方式输出数据 *@param integer $code 状态码 *@param string $message 提示信息 *@param array $data 数据 */ 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); }}
接下来测试我们接口
<?php require_once('./Response.php'); $arr=array( 'name'=>"wty", 'age' =>19 ); Response::json('200',"数据返回成功",$arr);
测试成功返回如下格式的数据
{"code":"200","message":"\u6570\u636e\u8fd4\u56de\u6210\u529f","data":{"name":"wty","age":19}}
六:xml方式封装通信接口
首先我们了解一下如何生成xml格式的数据
我们可以使用系统类也可以用字符组装
系统类:DomDocument 、 XMLWriter、 SimpleXML
简单介绍一个系统类:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" ?><xmm></xmm>'); $xml->WTY=""; $xml->WTY->tile="标题"; $xml->WTY->url="地址";
我们做xml的通信接口用字符组装的方式来实现
/* *按json方式输出数据 *@param integer $code 状态码 *@param string $message 提示信息 *@param array $data 数据 */public static function xml($code,$message='',$data=array()){ 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'?>"; $xml.="<wty>"; $xml.=self::xmlEncdoe($result); $xml.="</wty>"; echo $xml;} public static function xmlEncdoe($data){ $xml=$attr=""; foreach($data as $key=>$value){ if(is_numeric($key)) { $attr=" id='{$key}'"; $key="item"; } $xml.="<{$key}{$attr}>"; $xml.=is_array($value)?self::xmlEncdoe($value):$value; $xml.="</".$key.">"; } return $xml; }}//测试下 $arr=array( 'name'=>"wty", 'age' =>19, 'hao' =>array(1,2,3) ); Response::xml('200',"数据返回成功",$arr);
输出如下格式的数据
<wty><code>200</code><message>数据返回成功</message><data><name>wty</name><age>19</age><hao><item id="0">1</item><item id="1">2</item><item id="2">3</item></hao></data></wty>
xml和json格式数据的接口都分装好后那我们把它们两个结合起来
<?phpclass Response{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::xml($code,$message,$data); exit; }}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); }public static function xml($code,$message='',$data=array()){ 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'?>"; $xml.="<wty>"; $xml.=self::xmlEncdoe($result); $xml.="</wty>"; echo $xml;}public static function xmlEncdoe($data){ $xml=$attr=""; foreach($data as $key=>$value){ if(is_numeric($key)) { $attr=" id='{$key}'"; $key="item"; } $xml.="<{$key}{$attr}>"; $xml.=is_array($value)?self::xmlEncdoe($value):$value; $xml.="</".$key.">"; } return $xml; }}
测试test.php
<?phprequire_once('./Response.php');$arr=array( 'name'=>"wty", 'age' =>19, 'hao' =>array(1,2,3) );Response::show('200',"数据返回成功",$arr);
测试时访问test.php?format=xml
返回xml格式的数据
访问test.php?format=json
返回jsonl格式的数据
- app接口总结
- app接口总结
- App接口测试总结
- app开发总结 1 - 接口设计
- 接口测试和app测试的总结
- app接口
- app 接口
- APP接口
- APP接口
- APP接口
- app 接口
- App 接口
- 感受-App接口开发课程讲解和总结
- app与后台调接口不通问题总结
- APP接口简介---PHP开发APP接口
- app接口 封装通信接口
- 关于APP接口设计
- APP接口设计安全问题
- Python编程入门(1)--搭建开发环境
- svn更改地址,myeclipse中的项目如何重新定位svn中的项目
- EtherCAT主站SOEM源码解析----Raw Socket
- Android进阶之自定义view(四)
- 区块链将成为引导第四次工业革命的重要力量
- app接口总结
- 基于64位Windows 10系统的C语言与MATLAB混合编程
- 区块链对投资行业九大颠覆性影响
- 从一则笑话里分析项目需求的缺陷
- 【37.50%】【codeforces 732D】Exams
- DllRegisterServer的调用失败的问题解决方法
- c#TextBox输入框自动提示、自动完成、自动补全功能
- 火箭、飞行器、探测器的发射
- lambda