PHP开发APP接口之返回数据
首先说明一下客户端APP通信的格式
1.xml:扩展标记语言(1.用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,xml格式统一,跨平台和语言,非常适合数据传输和通信,早已成为业界公认的标准)
<?xml version="1.0" encoding="UTF-8"?> <item> <title>测试</title> <test id="1"> <description>测试oen</description> <address>深圳</address> </item>
XML的可读性要好
2、json:一种清凉级别的数据交换格式,具有良好的可读和便于快速编写的特性,可在不同平台证件进行数据交换,JSON采用兼容性很高的,完全独立于语言文本格式。这种特性使JSON成为理想的数据交换语言。
{"code":200,"message":"\u6210\u529f\u54af","data":{"id":1,"name":"jiang"}}
JSON的生成数据性 (json_encode(数组)) 传输速度方面要好
再说一下APP接口做的那些事
获取数据:从数据库中或缓存中获取数据,然后通过接口数据返回客户端
提交数据:通过接口提交数据给服务器,然后通过服务器入库处理,或者其他处理
最后综合方式封装通信数据方法
封装方法:show($code,$message,$data=array(),$type='json/xml')
<?php namespace Miaoxing\Zhw\Service; use miaoxing\plugin\BaseModel; class ZhwCategory extends BaseModel { const JSON = "json"; /** * 按x综合方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * @param string $type 数据类型 * return string */ public function show($code,$message='',$data=array(),$type = self::JSON) { 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; }else{ //TODO } } /** * 按json方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ public 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方式输出通信数据 * @param integer $code 状态码 * @param string $message 提示信息 * @param array $data 数据 * return string */ public function xmlEncode($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'?>\n"; $xml .= "<root>\n"; $xml .=self::xmlToEncode($result); $xml .="</root>"; echo $xml; } //对数据再处理 public function xmlToEncode($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::xmlToEncode($value):$value; $xml .="</{$key}>\n"; } return $xml; } }
Controller:
public function jsonsAction() { $arr = array( 'id' => 1, 'name' => 'jiang' ); $k = wei()->zhwCategory()->json(200,'成功咯',$arr); return $k; } public function xmlsAction() { $arr = array( 'id' => 1, 'name' => 'jiang', 'type' =>array(4,5,6), 'test' =>array(1,45,67=>array(1,2,3)), ); $k = wei()->zhwCategory()->xmlEncode(200,'成功咯',$arr); return $k; } public function showAction() { $arr = array( 'id' => 1, 'name' => 'jiang', 'type' =>array(4,5,6), 'test' =>array(1,45,67=>array(1,2,3)), ); $k = wei()->zhwCategory()->show(200,'成功咯',$arr,'json'); return $k; }
本人转自:https://blog.csdn.net/weixin_38300969/article/details/78341982
仅供自己学习,特此记录