3

我知道 REST API 可以使用 Zend_Rest_Controller 来实现,它有 5 个抽象方法 indexAction、getAction、postAction、putAction、deleteAction 来执行返回、创建、更新等......

我的问题是,除了这些默认功能之外,我是否可以在控制器中使用更多 API 虚构来执行各种类型的操作?

例如:

indexAction - 返回可用书籍的列表,

searchAction - 根据搜索条件返回书籍列表。(我知道可以在 indexAction 中使用一些参数来完成,但是代码看起来会更复杂,我需要避免这种情况)

4

1 回答 1

1

是的,您可以在控制器中创建自定义操作方法。尽管您正在扩展抽象类 Zend_Rest_Controller,但只要您定义了这 5 个抽象方法(您已经提到的那些),您就可以自由地自定义您的类的其余部分。

您可能会研究的唯一类似方法是getAction(). 这需要一个名称为 ID 的参数,并将根据主键检索记录。


您可能必须在配置文件中定义您的路由:

routes.archive.route = "search/:keyword"
routes.archive.defaults.controller = books
routes.archive.defaults.action = search
routes.archive.defaults.year = "Hamlet"
routes.archive.reqs.year = "\s+"

然后你需要将这些配置选项输入你的路由器:

$config = new Zend_Config_Ini('/path/to/config.ini', 'production');
$router = new Zend_Controller_Router_Rewrite();
$router->addConfig($config, 'routes');

阅读Zend 的文档以获得更深入的教程。

于 2013-01-27T15:41:37.257 回答