PHP开发APP接口全过程(一)

PHP开发APP接口全过程(一)

内容导读

收集整理的这篇技术教程文章主要介绍了PHP开发APP接口全过程(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6417字,纯文字阅读大概需要10分钟

内容图文

1、学习要点:

服务器端 –> 数据库|缓存 –>调用接口 –>客户端

2、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":"u6210u529fu54af","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:

<?phpnamespace MiaoxingZhwService;use miaoxingpluginBaseModel;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开发APP接口全过程(一)全部内容,希望文章能够帮你解决PHP开发APP接口全过程(一)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com