微信扫一扫打赏支持

Dcloud课程4 如何进行APP接口开发

Dcloud课程4 如何进行APP接口开发

一、总结

一句话总结:通过json或者xml。

 

1、APP如何进行通信?

通过在地址上接参数指明传递的数据的类型。而数据传递的类型一般是XML和json。

接口地址:
http://yzm.sinaapp.com/list.php?format=xml
接口文件:(list.php 处理一些业务逻辑)
接口数据:xml和json

 

2、APP的两种通信格式xml和json的优劣是什么?

1、可读性方面: xml比较好
2、生成数据方面:json较优(一个函数即可)
3、传输速度方面:json胜出

 

3、通信数据的标准格式是什么?

code 状态码(200,400 等)
message 提示信息(提示用户的操作成功与失败)
data 返回的数据

114 // $type=isset($_GET['type'])?$_GET['type']:'json';
115 // echo Response::datas('200','成功',$data,$type);

 

4、XML方式如何进行数据通信?

将所有数据包装在data标签中,xml可以自己创建标签。

这里用的就是普通的字符串拼接。

data里面的每一条可以封装在data1标签,data2标签等,也可以语义自定义标签。

 33     // xml
 34     static public function xml($code,$info,$data){
 35         if (!is_numeric($code)) {
 36             # code...
 37             return false;
 38         }
 39 
 40         if ($info && $data) {
 41 
 42             $str='    <?xml version="1.0" encoding="UTF-8">
 43                     <item>
 44                         <code>'.$code.'</code>
 45                         <info>'.$info.'</info>
 46                         <data>
 47                             ';
 48                     $str.=self::item($data);
 49             $str.='
 50                         </data>
 51                     </item> ';
 52 
 53             return $str;
 54         }else{
 55             return false;
 56         }
 57 
 58     }

 

 

 

二、如何进行APP接口开发

1)APP接口介绍

APP接口和PHP接口之间对比

 

 

2)APP如何进行通信

接口地址:
http://yzm.sinaapp.com/list.php?format=xml
接口文件:(list.php 处理一些业务逻辑)
接口数据:xml和json

 

3)通信格式

重点:
了解 xml和json优异和区别

APP的通信格式之xml

xml:扩展标记语言(Extensible Markup
Language,XML),可以用来标记数据、定义数
句类型,是一种允许用户对自己标记语言进行定义
的源语言。XML格式统一,扩平台语言,非常适合
数据传输和通信,业界公认的标准。
支持操作系统:windows 、linux
支持语言:python、php、java

1 <?xml version="1.0" encoding="UTF-8">
2 <item>
3 <title>yzm</title>
4 <test id="1" />
5 </item>

 

APP的通信格式之json

JSON(JavaScript Object Notation)是一
种轻量级的数据交换语言,以文字为基础,且易于
让人阅读,同时也方便了机器进行解析和生成。
JSON简单说就是javascript中的对象和数组,所以
这两种结构就是对象和数组两种结构,通过这两种
结构可以表示各种复杂的结构,其可以将
JavaScript 对象中表示的一组数据转换为字符串,
然后就可以在函数之间轻松地传递这个字符串,或
者在异步应用程序中将字符串从Web客户机传递给
服务器端程序。JSON采用完全独立于程序语言的
文本格式。JSON是理想的数据交换语言。

1 {
2 "employees": [
3 { "firstName":"Bill" , "lastName":"Gates" },
4 { "firstName":"George" ,
5 "lastName":"Bush" },
6 { "firstName":"Thomas" ,
7 "lastName":"Carter" }
8 ]
9 }

 

APP的通信格式之区别

1、可读性方面: xml比较好
2、生成数据方面:json较优(一个函数即可)
3、传输速度方面:json胜出

 

 

 

4)APP接口的作用

1、获取数据:
从数据或者缓存中获取数据,然后通过接口数据
返回给客户端。
2、提交数据:
通过接口提交给服务器,然后服务器对数据进行
入库处理,并返回执行结果。

 

5)通信数据的标准格式

code 状态码(200,400 等)
message 提示信息(提示用户的操作成功与失败)
data 返回的数据

 

6)json方式封装接口数据的方法

php生成JSON数据
方法:json_encode($value);
注意:该函数只能接受UTF-8编码的数据,
如果传递其他格式的数据的话会返回NULL

 

7)xml方式封装接口数据的方法

php生成xml数据
1)组成字符串
2)使用系统类
1、DomDocument
2、XMLWriter
3、SimpleXML

 

8)综合的封装通信接口的方式

将上述的xml和json,进行综合的封装

 

三、接口开发实例

  1 <?php 
  2 
  3 
  4 class Response{
  5     static public function datas($code,$info,$data,$type='json'){
  6         switch ($type) {
  7             case 'json':
  8                 # code...
  9             return self::json($code,$info,$data);
 10 
 11 
 12                 break;
 13             case 'xml':
 14             return self::xml($code,$info,$data);
 15 
 16             break;
 17             case "array":
 18             $arr=array(
 19                 'code'=>$code,
 20                 'info'=>$info,
 21                 'data'=>$data,
 22 
 23                 );
 24             var_dump($arr);
 25 
 26             break;
 27             
 28             default:
 29                 # code...
 30                 break;
 31         }
 32     }
 33     // xml
 34     static public function xml($code,$info,$data){
 35         if (!is_numeric($code)) {
 36             # code...
 37             return false;
 38         }
 39 
 40         if ($info && $data) {
 41 
 42             $str='    <?xml version="1.0" encoding="UTF-8">
 43                     <item>
 44                         <code>'.$code.'</code>
 45                         <info>'.$info.'</info>
 46                         <data>
 47                             ';
 48                     $str.=self::item($data);
 49             $str.='
 50                         </data>
 51                     </item> ';
 52 
 53             return $str;
 54         }else{
 55             return false;
 56         }
 57 
 58     }
 59 
 60     static public function item($data){
 61         $str="";
 62             # code...
 63         foreach ($data as $key => $value) {
 64                 # code...
 65             if (is_array($value)) {
 66                 # code...
 67                 $str.="<data$key>".self::item($value)."</data$key>\n";
 68 
 69 
 70             
 71             }else{
 72                 $str.="<$key>{$value}</$key>";
 73             }
 74 
 75         }
 76 
 77             return $str;
 78         
 79     }
 80     // json
 81 
 82     static public function json($code,$info,$data){
 83 
 84         if (!is_numeric($code)) {
 85             # code...
 86             return false;
 87         }
 88         if ($info && $data) {
 89             # code...
 90             $arr=array(
 91                 'code'=>$code,
 92                 'info'=>$info,
 93                 'data'=>$data,
 94 
 95                 );
 96             return json_encode($arr);
 97         }else{
 98             return false;
 99         }
100 
101     }
102 }
103 
104 
105 // $data=array(
106 //     array('name'=>'use1','age'=>"10"),
107 //     array('name'=>'use2','age'=>"10"),
108 //     array('name'=>'use3','age'=>"10"),
109 //     array('name'=>'use4','age'=>"10"),
110 //     array('name'=>'use5','age'=>"10"),
111 //     );
112 // $arr=array('name'=>'name1','age'=>'10');
113 
114 // $type=isset($_GET['type'])?$_GET['type']:'json';
115 // echo Response::datas('200','成功',$data,$type);
116 
117 
118 
119  ?>

 

 

 

 

 

 
posted @ 2018-07-17 11:29  范仁义  阅读(646)  评论(0编辑  收藏  举报