PHP REST架構簡單設計
REST(Representational State Transfer具象狀態傳輸)是一種針對網路應用的設計和開發方式,可以降低開發的複雜性,提高系統的延展性。
- 網路上的所有事物都被抽象為資源(resource)
- 每個資源對應一個唯一的資源標識(resource identifier)
- 通過通用的連接器介面(generic connector interface)對資源進行操作;
- 對資源的各種操作不會改變資源標識;
- 所有的操作都是無狀態的(stateless)。
- REST是通過HTTP請求的狀態,去伺服器端請求不同的服務方法,但是請求地址是相同的。比如請求一個http://xxxxx.com/user/的介面為例
- 例如POST方法,一般提供資料新增的功能,如果用戶端是POST方法,請求上面的介面,那就是告訴伺服器,是新增的操作。
- 例如GET方法,一般是擷取資料,因為GET方法是預設的方法,不會對資料造成改變,所以一般是擷取資料,通過GET方法請求上面的介面,就是擷取使用者資料
- 例如PUT方法,一般是更新操作,告訴伺服器,更新使用者資訊。
- 例如DEL方法,一般是刪除操作。
- 通過HTTP的4中要求方法,就可以在同一個介面地址上產生四種不同的請求,對介面的擴充性提供了巨大的協助。
/** * DEMO * @author zhuli */class indexController extends Controller { public $initphp_list = array('test', 'user'); //Action白名單 public $isRest = array('user'); //請求index.php?c=index&a=user介面,通過CURL的不同請求狀態 public function run() { $curl = $this->getLibrary('curl'); $a = $curl->put('http://10.9.11.1/initphp_32/demo/www/?c=index&a=user', array('username' => 'hello')); print_r($a); } //當請求方式是GET方法的時候 public function user_get() { echo 'get'; } //POST方法 public function user_post() { $username = $this->controller->get_gp('username', 'P'); echo $username; echo 'get'; } //PUT public function user_put() { $username = $this->controller->get_gp('username', 'U'); echo $username; echo 'put'; } //DEL public function user_del() { $username = $this->controller->get_gp('username', 'D'); echo $username; echo 'del'; }}
參考:百度,InitPHP架構REST實現