2

问题

我们如何使资源不是动词......但在默认GET, POST, PUT,动作之外仍然保持其特殊DELTE动作?

细节

我一直在寻找构建 RESTful API 的正确方法。那里有很多很棒的信息。现在我实际上正试图将它应用到我的网站并遇到了一些障碍。

我们的网站做什么:

  • 我们的网站允许人们玩游戏并赢取奖品。

  • 该 API 将允许开发人员构建自己的游戏并使用我们的后端来收集、验证、存储用户信息并发放奖品。

设想:

开发人员将创建他们的游戏,然后调用我们的 API 让玩家玩游戏 ( play_game)。这种play_game方法结合了我们不希望开发人员独立运行的多个功能。

以下是play_game调用在服务器上的作用:

  1. 它接受开发者想要存储的玩家数据。
  2. 验证数据(将其与控制面板中的规则设置进行比较)
  3. 计算应该给予什么奖品。
  4. 将赢得的奖品返回给开发者。
  5. 此外,还有多个在幕后触发的功能,例如发送电子邮件等。

资源 这是我们当前资源的样子:

 http://site.com/api/play_game

问题

这不符合 RESTful API 中没有动词的想法。

我们如何使这个资源不是动词......但在默认GET, POST, PUT,动作之外仍然保持它的特殊DELTE动作?

笔记:

在问了这个问题之后,我决定使用 Phil Sturgeons RESTful 框架......除非有人有更好的主意。

4

1 回答 1

1

您可以将以下代码放入applications/routes.php

$route['(.*)'] = 'api';

然后您可以访问您的 API,例如: http ://site.com/play_game

您只能访问一个控制器(您的 api 控制器)希望它有所帮助

于 2012-08-21T18:19:51.780 回答