2011-06-02 131 views
1

在Zend Framework中创建一个Restful API时,你可以使用模块吗?如果是这样,可以解释一下吗?以一个例子为例。 (或证明文件的链接)在Zend Framework中创建一个Restful API时,你可以使用模块吗?

我有模块调用:

产品

  • 可以具有一个控制器

实体

可以具有多于一个的控制器例如。

  • /客户

  • /供应商

在每一个我有一个指数控制器与方法:

获取

删除

例子:

产品/指数/ ID = 1个&名称=测试(将增加)

但是我想删除单词索引所以它的这个代替? 产品/?ID = 1 &名称=测试(将增加)

我可以做到这一点Zend_Controller_Router_Route中的帮助,但它并没有传递请求,香港专业教育学院看着getMethod,但ÿ你不能在引导阶段那样做。

有什么办法可以使用模块化的Zend Framework应用程序作为一个restful API?

+0

没有任何有关您的引导/路由的信息,这很难解决。你应该看看REST路由器:http://framework.zend.com/manual/en/zend.controller.router.html#zend.rest.route_usage – Fge 2011-06-02 21:29:38

回答

1

是的,你可以。

您必须使用Zend_Rest_Route。它通过该方法将请求路由到正确的操作。有一个错误会阻止在配置文件中配置其余路由,所以您必须在引导中添加路由。

<?php 
protected function _initRestRoute() 
{ 
    $front = Zend_Controller_Front::getInstance(); 
    $router = $front->getRouter(); 
    $restRoute = new Zend_Rest_Route(
     $front, 
     array(),  //Defaults 
     array('api') //Restful modules 
    ); 
    $router->addRoute('rest', $restRoute); 
} 

默认情况下,如果你给这样的URL时,123绑定到变量$ ID

products/123 

你也可以指定URL像这样,当变量绑定“ 123' - > $ ID和 '测试' - > $命名

products/id/123/name/test 

该控制器应该扩展Zend_Rest_Controller类

相关问题