我有来自http://www.chrisdanielson.com/2009/09/02/creating-a-php-rest-api-using-the-zend-framework/的Zend代码,如下所示:
$this->bootstrap('Request');
$front = $this->getResource('FrontController');
$restRoute = new Zend_Rest_Route($front, array(), array(
'default' => array('version')
));
$front->getRouter()->addRoute('rest', $restRoute);
我正在试图像这里指定的那样:http://wdvl.com/Authoring/PHP/Zend_Routes/Jason_Gilmore04282010.html
让系统响应网址,例如:
www.site.com/version/param1/param2
如何更改上面的工作代码以执行2个参数?我将实现其他命令,例如:/ retrieve /,/ put /等等。
答案 0 :(得分:1)
我的Bootstrap中的路由如下:
/*
* ReWrite Rules and Routes
*/
protected function _initRoutes() {
$router = Zend_Controller_Front::getInstance ()->getRouter ();
$router->addRoute('rest_url', new Zend_Controller_Router_Route('version/:param1/:param2/', array( 'module'=>'ModuleName', 'controller' => 'ControllerName', 'action' => 'ActionName', 'param1' => 'default here if you want', 'param2' => 'can leave param1 and param2 blank here')));
}
这是我一直有路线工作的方式。
答案 1 :(得分:0)
Zend_Rest_Route不支持多个重写参数(例如/ version /:id)。
您必须编写自定义路由以在Rest实现中处理此问题。