PHP制作API接口

2018-06-22 05:32:00来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

需要单一入口文件,可以使用autoload来加载

 

 1 <?php
 2     //获取get参数
 3     $m = !empty($_GET['m'])?$_GET['m']:'Index';
 4     $a = !empty($_GET['a'])?$_GET['a']:'index';
 5     
 6     //引入类库
 7     include './Libs/config.php';
 8     include './Libs/Model.class.php';
 9     include './Libs/Auth.php';
10     include './Libs/Tool.php';
11     
12     //调用方法检测参数是否完整
13     Auth::CheckTime();
14     Auth::CheckSign();
15     
16     function __autoload($className){
17         //检测文件是否存在
18         if (file_exists('./Controller/'.$className.'.php')) {
19             include './Controller/'.$className.'.php';
20         }else if(file_exists('./Libs/'.$className.'.php')){
21             include './Libs/'.$className.'.php';
22         }else{
23             echo '调用的类不存在';
24             exit;
25         }
26     }
27     $classname = $m.'Controller';
28     $obj = new $classname;
29     $obj->$a();
30 ?>

 

response方法用来返回json数据包

JSON_UNESCAPED_UNICODE:以字面编码多字节 Unicode 字符(默认是编码成 \uXXXX)。自 PHP 5.4.0 起生效。   

 

<?php
public static function response($errCode,$tips){
    $response = array('code'=>$errCode,'msg'=>$tips,'data'=>[]);
    $res = json_encode($response,JSON_UNESCAPED_UNICODE);
    echo $res;
}
?>

 

Auth类用来检测传值是否正确,这里用了两个检测参数的方法,第一个用来检测是否超时,第二个用来检测sign是否正确(sign可以保存在数据库中以确保每个用户的sign不一样)

 

 1 <?php
 2     class Auth{
 3         public static function CheckTime(){
 4             //判断是否有t参数
 5             if (empty($_GET['t'])) {
 6                    //调用response方法,传入错误码以及提示文字
 7                 Tool::response('err001','缺少时间参数'); 
 8                 exit;
 9             }else if(time()-$_GET['t']>=10){
10                 Tool::response('err002','请求超时'); 
11                 exit;
12             }
13         }
14         public static function CheckSign(){
15             //判断是否有sign参数
16             if (empty($_GET['sign']) || $_GET['sign']!='RPGMSonlKKu8ROdF3KyPUdCvnTPdIDx5') {
17                    //调用response方法,传入错误码以及提示文字
18                 Tool::response('err003','Sign认证失败'); 
19                 exit;
20             }
21         }
22     }
23 ?>

 

IndexController,用来作为数据查询返回

 

 1 <?php  
 2     class IndexController{
 3         public function get($num=""){
 4             $link = mysqli_connect('localhost','root','password') or die("数据库连接失败");
 5             mysqli_select_db($link,'dbname');
 6             mysqli_set_charset($link,'utf8');
 7             if($num!=''){
 8                 $sql = "SELECT * FROM content limit=".$num;
 9             }else{
10                 $sql = "SELECT * FROM content";
11             }
12             $data=mysqli_query($link,$sql);
13             mysqli_close($link);
14             //返回值数组
15             $response = array('code'=>'000000','msg'=>'ok','data'=>$data);
16             $res = json_encode($response,JSON_UNESCAPED_UNICODE);
17             echo $res;
18         }
19     }
20 ?>

 

最后请求地址为:API接口地址?m=index&a=get&num=2&t=time&sign=sign

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Session与Cookie的区别与联系

下一篇:请求头和响应头