zoukankan      html  css  js  c++  java
  • 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>
    ";
     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  ?>
     
  • 相关阅读:
    非常有助于理解二极管PN结原理的资料
    5个CSS3技术实现设计增强
    如何读懂Web服务的系统架构图
    网页布局WEB标准的HTML结构化
    网站内容排版可用性分析
    用CSS做导航菜单的4个理由
    提高网站设计可用性(有效性)的10条原则
    dl,dt,dd标签 VS 传统table实现数据列表
    一些CSS3新技术
    21个CSS技巧
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9322462.html
Copyright © 2011-2022 走看看