效劳器端 –> 数据库|缓存 –>挪用接口 –>客户端
二、APP接口引见:(PHP开发APP接口)
PHP面向工具的接口:形象类,interface界说 ==>interface.php
===>1.很标准
APP接口(通讯接口):经过接口失去数据,将数据填充到APP中
—>APP开发职员存眷:申请APP地点(接口地点)+前往数据
APP(通讯)接口界说:
1.接口地点:http://app.com/api.php?format=xml
2.接口文件:app.php解决一些营业逻辑
3.接口数据
(保举学习:PHP视频教程)
3.客户端APP通讯:
APP是若何进行通讯的:
C (接口地点:http://app.com/api.php?format=xml/json) S
客户端APP ------------------------------> 效劳器
<-----------------------------
前往数据4.客户端APP通讯格局区分
1.xml:扩大标志言语(1.用来标志数据,界说数据类型,是一种容许用户对本人的标志言语进行界说的源言语,xml格局对立,跨平台以及言语,十分适宜数据传输以及通讯,早已成为业界公认的规范)
<?xml version="1.0" encoding="UTF-8"?>
<item>
<title>测试</title>
<test id="1">
<description>测试oen</description>
<address>深圳</address>
</item>2.json:一种清冷级此外数据替换格局,具备精良的可读以及便于疾速编写的特点,可正在没有同平台证件进行数据替换,JSON采纳兼容性很高的,齐全自力于言语文本格局。这类特点使JSON成为理想的数据替换言语。
XML的可读性要好,JSON的天生数据性 (json_encode(数组)) 传输速率方面要好
5.APP接口做的那些事:
猎取数据:从数据库中或缓存中猎取数据,而后经过接口数据前往客户端
提交数据:经过接口提交数据给效劳器,而后经过效劳器入库解决,或许其余解决
6.JSON形式封装通讯接口
PHP天生json数据:json_encode($arr);
正文:该函数只能承受UTF-8编码的数据,假如通报其余格局的数据该函数会前往null
通讯数据标注格局:
code 状态码(200 400等) message 提醒信息(邮箱格局没有正确;数据前往胜利等) data 前往相应的数据 —————————- -JSON code : 200 message :”数据前往胜利” -data id :1 name : “测试”
实例:
某个server中:
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;
}某个Controller:
public function jsonsAction()
{
$arr = array(
'id' => 1,
'name' => 'jiang'
);
$k = wei()->zhwCategory()->json(200,'胜利咯',$arr);
return $k;
}阅读器:http://127.0.0.1/admin/zhw-categorys/jsons
{"code":200,"message":"\u6210\u529f\u54af","data":{"id":1,"name":"jiang"}}7.PHP天生XML数据:
7.1PHP天生XML数据
1.组装字符串
2.应用零碎类:DomDocument
XMLWriter
SimpleXML
如用DomDocument:
<?php
$dom = new DomDocument('1.0','utf-8');
$element = $dom->createElement('test','This id root element');
$dom->appendChild($element);
echo $dom->saveXML();
?>====>后果:
<?xml version="1.0" encoding="utf-8"?>
<test>This is the root element</test>应用组装字符串的简略实例性:
public static function xml()
{
header("Content-Type:text/html");
$xml = "<?xml version='1.0' encoding='UTF-8'?>\n";
$xml .= "<root>\n";
$xml .= "<code>200</code>\n";
$xml .= "<message>数据前往胜利</message>\n";
$xml .= "<data>\n";
$xml .="<id>1</id>\n";
$xml .="<name>测试</name>\n";
$xml .="</data>\n";
$xml .="<root>";
echo $xml;
} 7.2封装XML数据办法:
封装办法:xmlEncode($code,$message='',$data = array());
data数据剖析:
1.array('index' => 'api');
2.array(1,7.89);
详细:
server模块下: 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}>"; //它们{$key} {$attr}之间要有一个小空格
$xml .=is_array($value) ? self::xmlToEncode($value):$value;
$xml .="</{$key}>\n";
}
return $xml;
}某个Controller:
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;
}8.综合形式封装通讯数据办法:
封装办法:show($code,$message,$data=array(),$type='json/xml')
终极页面:
server:
<?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;
}以上就是PHP开发APP接口全进程(一)的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学 APP
抱歉,评论功能暂时关闭!