在Zend Framework中创建Restful API时,您可以使用模块吗?

时间:2011-06-02 14:53:49

标签: api zend-framework module zend-framework-modules

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

我有一些名为:

的模块

产品

  • 可能有一个控制器

实体

可能有多个控制器,例如。

  • /客户

  • /供应商

在每个我都有一个索引控制器的方法:

获取

发布

删除

示例:

产品/索引/?id = 1& name = test(将添加)

但是我想要删除单词索引,所以它改为: 产品/?id = 1& name = test(将添加)

我可以在Zend_Controller_Router_Route的帮助下做到这一点,但它没有传递请求,我看过getMethod,但你不能在bootstrap阶段这样做。

有没有什么办法可以将模块化的Zend Framework应用程序用作一个宁静的API?

1 个答案:

答案 0 :(得分: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' - &gt; $ id和'​​test' - &gt; $名称

products/id/123/name/test

控制器应该扩展Zend_Rest_Controller类