0

所以,我有一个 zend rest API,我实现了 Zend_Rest_Controller,应用程序可以工作,但是 url 方案对我来说很奇怪。

www.example.com/public/user <- triggers index action in my UserController
www.example.com/public/user/get <- triggers get action in my UserController
www.example.com/public/user/post <- triggers post action in my UserController
www.example.com/public/user/put <- triggers put action in my UserController
www.example.com/public/user/delete <- triggers delete action in my UserController

此外,API 有点响应请求,比如如果您要使用 POST 进行 ajax 调用并输入 post 参数,那么 api 可以获取参数,但不会关心它是 POST,所以如果我拨打电话到 www.example.com/public/user 并输入 POST 参数,然后 API 认为它调用索引操作,但使用我可以访问的参数

 $this->getRequest()->getParam() 

让网址更像

www.example.com/user <- And have it respond to requests like POST or GET

任何人都知道为什么我的 url 架构如此奇怪?

4

1 回答 1

0

您应该在 Zend 配置中设置 REST 路由。这可以这样实现:

$front     = Zend_Controller_Front::getInstance();
$restRoute = new Zend_Rest_Route($front, array(), array(
    'public' => array('user')
));
$front->getRouter()->addRoute('rest', $restRoute);

这将导致 Public_UserController():

GET /public/user        - IndexAction
POST /public/user       - postAction
PUT /public/user/:id    - putAction
DELETE /public/user/:id - deleteAction

另请参阅 Zend 框架文档的这一部分:http: //framework.zend.com/manual/1.12/en/zend.controller.router.html#zend.controller.router.routes.rest

我还想补充一点,使用 Zend_Config INI 配置 REST 路由可能会导致某种故障排除,因为报告了一些关于 REST 路由和 INI 配置的错误。也可以看看:

http://zend-framework-community.634137.n4.nabble.com/Zend-Rest-Route-and-application-ini-td1014158.html

于 2013-08-09T09:44:13.243 回答