2011-02-10 51 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() {} 
}