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); ?>
调用结果
上一篇: 解决idea打开某个项目卡住的问题