您的位置:首页 > 移动开发

PHP开发APP接口

2016-07-25 21:38 197 查看
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
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: