2011-02-10 86 views
1

基本上我正在開發一個帶有蛋糕的API,我想在我的URL中加入一些版本控制,以便稍後更輕鬆地升級API。CakePHP API的路線

我不是在尋找的那一刻任何花哨路線,簡單的路線

domain.com/api/1.9/:controller工作。

我很難讓這個工作。目前簡單的請求正常工作,但發送POST請求至domain.com/api/1.0/pictures/失敗。

+0

你如何定義你的路線? – Darren 2011-02-10 16:46:14

+0

目前只有這些: Router :: connect('/ api/1.0 /:controller /:action',array()); #RESTful router aan! Router :: mapResources('ratings'); Router :: mapResources('pictures'); Router :: parseExtensions('xml','json'); – Ezra 2011-02-10 17:53:41

回答

0

這裏有一個關於做你想要什麼而不使用聰明的路由的想法,但你需要改變其餘的調用URL一點。

代替

domain.com/api/1.0/pictures/$param1/$param2/$etc 

嘗試

domain.com/api/pictures/1.0/$param1/$param2/$etc 

然後在控制器,

class Pictures extends controller { 
    .... 
    function pictures($ver , $param1, $param2, $etc) { 
    switch($ver) { 
     case '1.3': 
     $this->setAction('pictures_1-3', $param1, $param2, $etc); 
     break; 
     case '1.2': 
     $this->setAction('pictures_1-2', $param1, $param2, $etc); 
     break; 
     case '1.1': 
     default: 
     $this->setAction('pictures_1-1', $param1, $param2, $etc); 
     break; 
    } 
    } 

    function pictures_1-3() {} 
    function pictures_1-2() {} 
    function pictures_1-1() {} 
}