前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP实现API通信接口

PHP实现API通信接口

作者头像
素浅
发布2020-12-18 15:48:33
9930
发布2020-12-18 15:48:33
举报
文章被收录于专栏:程序媛生涯程序媛生涯

API接口是指应用程序编程接口,是两个程序之间约定好的通信方式。我们可以这样理解,两个人异地时需要通过电话线交换信息,而API就是两个程序之间交换数据的电话线。API的数据格式有两种,分别是json和xml。

实现API接口

<?php

class Response{

    /** 
    * show方式可自由选择xml或json数据类型
    * @param integer $code 状态码 
    * @param string $message 提示信息 
    * @param array $data 数据 
    * @param string $type 数据类型 
    * return string 返回值为json 
    */ 

    //静态方法,构造json数据 
    public static function show($code,$message='',$data=[],$type='json'){ 
     
        if(!is_numeric($code)){ 
            return ''; 
        } 

        $result=array( 
            'code'=>$code, 
            'message'=>$message, 
            'data'=>$data 
        );

        if ($type=='json') {
            return self::json($result);
        }

        return self::xml($result);
        
    } 

    /** 
    * json方式输出数据 只支持utf-8编码
    * @param array $result  api标准模式 
    * return string 返回值为json 
    */ 

    //静态方法,构造json数据 
    public static function json($result){  

        return json_encode($result); 
    } 


    /**
     * xml方式输出数据  
     * @param  array  $result  api标准模式
     * @return string  返回值为xml        
     */
    public static function xml($result){

        header("Content-Type:text/xml");
        $xml = "<?xml version='1.0' encoding='UTF-8'?>";
        $xml .= "<root>";
        $xml .= self::xmlToEncode($result);
        $xml .="</root>";
        return $xml;
    }

    public static function xmlToEncode($result){
        
        $xml = $attr = "";
        foreach($result 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}>";
        }
        return $xml;
    }
  
}

测试API接口

echo Response::show(200,'成功',['age'=>18,'name'=>['素浅','emily']],'xml');

END

技术以内 | 技术以外

技术栈 | 小感悟

效率工具 | 必备技能

你的效率有多高,决定你能跑多快

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序媛生涯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现API接口
  • 测试API接口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档