使用擴展的 CodeIgniter 框架實現 RESTful 框架

REST(表現層狀態轉化)是一種原則,而符合這種原則的架構就稱之爲 RESTful架構


表現:


經過 get /library/1/book/2 這種風格的URI來訪問控制器並傳遞參數

其中get是不出如今URI中的,而是一種操做方式(get、post、delete、put),控制器經過判斷請求的方式,來決定調用的方法

因此 get /book/1 和 post /book/1 ,雖然訪問的URL徹底同樣,可是根據請求方式的不一樣,實際上調用的是控制器內不一樣的方法


實現:

使用 REST_Controller 擴展 CI_Controller

經過路由重寫,能夠使用非正常格式的 URL 訪問對應的對象方法

經過 REST_Controller 判斷請求的類型,並將URL中的參數交給相應的控制器處理

若是經過 GET 發送請求到URL www.test.com/index.php/user/1,
那麼會自動調用 User 控制器中的 index_get($id) 方法,並將參數 1 傳遞給 $id

若是經過 GET 發送請求到URL www.test.com/index.php/user/book/name/foo/id/1
那麼會自動調用 User 控制器中的 login_get() 方法,經過 $this->get('name') 和 $this->get('id') 來分別獲取到參數 foo 和 1

若是經過 POST 發送請求到URL www.test.com/index.php/user/login
那麼會自動調用 User 控制器的 login_post() 方法,經過形如 $this->post('name') 分別獲取對應的參數

PUT\DELETE 同理


返回數據:


控制器中相應的函數通過一系列處理後,須要返回包含足夠信息的json格式字符串(根據具體需求)

經過形以下面的方法返回json格式的字符串:

$data = ['name'=>'','age'=>''];  $this->response($data);  複製代碼


codeigniter-restserver項目地址:github.com/chriskacerg…
php

相關文章
相關標籤/搜索