APP接口和面向对象接口是不一样的
APP接口加载APP页面时,通过加载APP接口获取数据,客户端发送一个请求,经过处理返回数据,客户端工程师通过这些数据解析,然后把数据显示出来。
接口要满足三个条件:
1.接口地址
2.接口文件
3.返回的接口数据
数据标准格式:
1.状态码
2.提示信息
3.返回数据
Json:一种轻量级数据交换格式,具有良好的可读和便于快速编写的特性,可以在不同平台之间进行数据交换,json采用兼容性很高的完全独立于语言文本格式,json只能是UTF-8编码格式,其他为null。
<?php
/*
* 按json方式传输数据
* $code 是状态码
* $message 是提示信息
* $data 是数据
*
* */
class Reson{
public static function json($code,$message='',$data=array()){
if(!is_numeric($code)){
return '';
}
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
return json_encode($result);
}
}
xml:扩展标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,节点可自定义,格式统一,跨平台和语言。
<?php
/*
* 按xml方式传输数据
* $code 是状态码
* $message 是提示信息
* $data 是数据
*
* */
error_reporting(E_ALL^E_NOTICE);
class Reson{
public static 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 static 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;
}
}
//$data=array(
// 'id'=>1,
// 'name'=>'hehe',
// 'type'=>array(1,2,354)
//);
//Reson::xmlEncode(200,'success',$data);
xml和json区别:xml可读行更高,json比xml生成数据更方便,json比xml传输数据更快。
xml和json结合封装
<?php
class Reson{
const JSON="json";
public static function show($code,$message='',$data=array()){
if(!is_numeric($code)){
return '';
}
$type=isset($_GET['type'])?$_GET['type']:self::json($code,$message,$data);
$result=array(
'code'=>$code,
'message'=>$message,
'data'=>$data,
);
if($type=='json'){
self::json($code,$message,$data);
exit;
}elseif($type=='xml'){
self::xmlEncode($code,$message,$data);
exit;
}elseif($type=='array'){
print_r($result);
}
}
/*
* 按json方式传输数据
* $code 是状态码
* $message 是提示信息
* $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);
exit;
}
/*
* 按xml方式传输数据
* $code 是状态码
* $message 是提示信息
* $data 是数据
*
* */
public static 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 static 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;
}
}
直接在调用的路径后加?type=xml 这将返回一个xml格式的数据
加?type=json 则返回一个json格式的数据