CakePHP API路线

时间:2011-02-10 12:15:36

标签: php api cakephp routes

基本上我正在开发一个带有蛋糕的API,我想在我的网址中添加一些版本控制,以便以后更轻松地升级API。

我现在不寻找任何奇特的路线,只是路线

domain.com/api/1.9/:controller有效。

我很难让这个工作。目前,简单请求有效,但向domain.com/api/1.0/pictures/发送POST请求失败。

2 个答案:

答案 0 :(得分:4)

Frank Mullenger拥有我发现的版本化CakePHP API的最佳解决方案。他发布了一个由三部分组成的系列文章,它充分利用了Cake的路由和一些自定义API方法。

First part (the problem with un-versioned APIs)

Second part (the solution for CakePHP)

Third part (error handling)

答案 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() {}
}