好吧,这里一个更好的标题可能是“CakePHP 中的 REST 渐进增强”,但至少现在我知道如果你的答案只是指两者之间的区别,你没有读过这个问题;)
我非常熟悉 REST 以及如何将它与 CakePHP 集成,但我并不是 100% 了解如何仍然维护一个常规功能的网站。使用 Router::mapResources 听起来是个好主意,但这会在维护站点的“优雅降级”版本方面产生问题,因为对 /resource/ 的 POST 请求和对 /resource/add 的 GET 请求都会路由到相同的操作(添加)。显然,如果他们使用的是 REST api,我希望此操作返回一个 JSON 对象,但如果他们使用的是网站的降级版本(可能没有 JS),它应该是一个添加表单,对吧?
处理这个问题的最佳方法是什么。您是否使用 Router::resourceMap() 将 REST 请求路由到其他操作名称?你有没有做过我看到的那种疯狂的黑客行为,有 /api/ 前缀部分的资源映射,所以你可以使用 api_action 函数?您是否通过检查 isAjax() 来处理 REST 和常规请求的操作?如果是这样,您如何确保可以依赖浏览器正确支持其他两种请求类型?
我已经搜索了很多,但没有找到任何关于如何在 Cake 中保持传统请求与 REST 一起可用的任何信息,所以如果有人有任何建议或经验,我很想听听!