1. 程式人生 > >(筆記)使用擴充套件的CI框架實現RESTful框架

(筆記)使用擴充套件的CI框架實現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);