輕量級PHP的REST框架:prest
特性描述:
本API目前測試的是Linux+Apache+Mysql+PHP環境,其它環境暫時沒有測試。
1、api與類方法一一對應,方便快速添加。
2、支持api類方法參數檢查。
3、支持權限檢查。
4、支持ticket生成、校驗,可防止被中間人盜用。
5、支持API自定義緩存時間。
6、繼承restdb可使用默認數據庫方法。
一、配置Apache支持.htaccess文件
<Directory /.../rest/ >
AllowOverride All
Options FollowSymLinks
</Directory>
二、配置rest/inc/config.php
三、使用rest.sql建立數據庫
1、登錄帳號http://host/rest/user/login?uname=test&passwd=test
2、測試其它接口http://host/rest/user/add?uname=test&passwd=test
四、添加接口
在rest/handlers目錄添加對應類文件和靜態方法即可。
比如,需要添加http://host/rest/foo/test?arg1=xxx&arg2=xxx&xxx接口。
參數目前可以通過querystring或是post方式傳入。
添加foo.php文件
類
<?php
class foo{
public function test($arg1,$arg2...)
{
auth::check_permission(ROLE_ADMIN);/檢查該方法要求的權限/
#logic about $obj
....
return new response(array('body'=>$obj,'cache'=>'5'));
}
}
目前返回對象支持:
body:返回正文對象,可以是任何的變量,將轉換成json格式返回。
cache:緩存秒數,默認為無緩存。
header:自定義頭部對象,里面是key=>value對的數組。
code:返回的http狀態碼。
五、自定義路徑映射
修改config.php變量,加入映射關系。
$g_maps = array(
...,
'/abc/test'=>array(
'class'=>'foo',
'method'=>'test'
)
)
TODO LIST
1、按http規范,對有副作用影響接口強制要求使用POST/DELETE/PUT 等方法。
2、補充功能函數,目前只添加了對mysql數據庫的基本操作。