基本上我正在开发一个带有蛋糕的API,我想在我的网址中添加一些版本控制,以便以后更轻松地升级API。
我现在不寻找任何奇特的路线,只是路线
domain.com/api/1.9/:controller有效。
我很难让这个工作。目前,简单请求有效,但向domain.com/api/1.0/pictures/发送POST请求失败。
答案 0 :(得分:4)
Frank Mullenger拥有我发现的版本化CakePHP API的最佳解决方案。他发布了一个由三部分组成的系列文章,它充分利用了Cake的路由和一些自定义API方法。
First part (the problem with un-versioned APIs)
答案 1 :(得分: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() {}
}