APP接口

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格式的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值