如何维护我自己的应用程序的RESTful设计

时间:2013-01-28 21:45:56

标签: rest cakephp-2.0

据我所知,REST Web服务的特点是资源概念。一切都应围绕资源及其CRUD操作旋转。假设一个资源是播放器资源,我可以在链接http://mydomain.com/players.xml上检索播放器列表,第五个播放器可以在http://mydomain.com/players/5.xml到达,依此类推,使用正确的HTTP方法,我可以执行不同的CRUD操作。

现在在客户端,问题是:如果我需要显示一个包含玩家得分的表格(你可以假设这个表是动态构建,查询玩家的数据库表)。在我的观点中,这个表不是真正的资源(我不能删除表,也不能编辑或添加新表)。

然后真正的问题是(考虑到我正在使用CakePHP框架):如果没有破坏玩家控制器的RESTish风格,我该怎么办?

我的第一个想法是:将方法getTable()添加到玩家控制器的先前四种CRUD方法(index()view()edit()delete())中,修改routes.php配置文件的所有REST API都可以在rest路径(即http://mydomain.com/rest/players/5.xml)下访问,而所有其他服务(非RESTFUL)都可以在nonrest下访问路径(即http://mydomain.com/nonrest/players/getTablehttp://mydomain.com/nonrest/players/getTable.xml)。通过这种方式,API的客户端肯定会知道在rest路径下,REST范例得到了尊重。 是一个好的解决方案?你还有其他想法吗?

1 个答案:

答案 0 :(得分:2)

您不需要单独的nonrest层次结构; http://mydomain.com/players/5/score.xml绝对没有错。仅仅因为资源是只读的,因此不会使它成为资源以外的东西。