mckangwei

需要单一入口文件,可以使用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

分类:

技术点:

相关文章: