使用Zend Framework,如果我想从我的应用程序和通过REST接收相同的数据,这将由同一个动作控制器处理,即
articlesController extends Zend_Controller_Action
{
listAction()
{
// Service layer get data
// REST request return results in JSON
// Normal request return view
}
}
或者这应该在单独的控制器中?
articlesController extends Zend_Controller_Action
{
listAction()
{
// Service layer get data
// Returns view
}
}
articlesController extends Zend_Rest_Controller
{
getAction()
{
// Service layer get data
// Returns view
}
}
希望有意义
谢谢你们
答案 0 :(得分:0)
在默认的MVC Zend Framework设置中,Controller和Action名称链接到路径。路由器检查路径,然后调度到适当的控制器和操作。
考虑到这一点,你如何设置它并不重要。 只取决于您希望如何构建路径。
如果路径中的某些信息包含其他参数,则可以在一个操作中合并所有内容。您的第一个参数可能是REST请求的“api”,或者如果您的其他参数位于URI路径中,则您有常规请求,但如果参数位于GET数组中,则您有API REST请求。这对你的第一个例子都有用,我猜你已经这么想了。
对我来说,拥有API路径更合适。有了它,您将拥有一个API控制器和相应的操作。在第二个示例中,这意味着您的API控制器看起来更像是
apiController extends Zend_Rest_Controller {
articlesAction() {
// your REST data here
}
}
// URI path: /api/articles
请注意,您不能拥有两个名称相同的控制器。