欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

php接口编程

程序员文章站 2022-03-21 18:46:14
1:自定义接口编程 对于自定义接口最关键就是写接口文档,在接口文档中规定具体的请求地址以及方式,还有具体的参数信息 2:接口文档编写 Username 用户名 必须参数 password 密码 必须参数 返回格式为 json 对应的数据信息 Status:具体状态标识(1:登录成功2:登录失败) M ......

1:自定义接口编程

对于自定义接口最关键就是写接口文档,在接口文档中规定具体的请求地址以及方式,还有具体的参数信息

2:接口文档编写

请求地址 http://jxshop.com/api/login
请求方式 get请求
请求的参数

username 用户名 必须参数

password 密码 必须参数

返回结果

返回格式为 json

对应的数据信息

status:具体状态标识(1:登录成功2:登录失败)

msg:具体的提示信息

data:表示登录成功之后的具体用户信息

 

 

 

 

 

 

 

 

 

 

3:使用代码具体实现

对于继承的控制器不能有登录验证操作,否则该控制器不能被继承

 

<?php 
class response{
    const json = "json";
    /**
    * 按综合方式输出通信数据
    * @param integer $code 状态码
    * @param string $message 提示信息
    * @param array $data 数据
    * @param string $type 数据类型
    * return string
    */
    public static function show($code, $message = '', $data = array(), $type = self::json) {
        if(!is_numeric($code)) {
            return '';
        }
        //通过地址栏传递format是等于json还是xml、array
        $type = isset($_get['format']) ? $_get['format'] : self::json;

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

        if($type == 'json') {
            self::json($code, $message, $data);
            exit;
        } elseif($type == 'array') {
            print_r("<pre>");
            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 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方式输出通信数据
    * @param integer $code 状态码
    * @param string $message 提示信息
    * @param array $data 数据
    * return string
    */
    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;
    }
}

?>

 

调用接口

<?php 
/**
 * 调用接口
 */
require_once('./response.php');
$arr=array(
    'id'=>1,
    'name'=>'baikai'
);
//调用json接口数据
//response::json(200,'数据返回成功',$arr);
//调用xml接口数据
response::show(200,'数据返回成功',$arr);
?>

调用结果

php接口编程