我一直在研究 API 并为我们正在进行的项目开发 REST API。
API 只接受来自一个来源的 JSON 格式的连接,我理解这一点很好。
如果能理解所讲的大部分内容,但是我不理解第三个代码示例以及路由信息的去向。
他们提供的例子是:
$data = RestUtils::processRequest();
switch($data->getMethod)
{
case 'get':
// retrieve a list of users
break;
case 'post':
$user = new User();
$user->setFirstName($data->getData()->first_name); // just for example, this should be done cleaner
// and so on...
$user->save();
break;
// etc, etc, etc...
}
我不确定的部分是如何接受原始请求,即/get/user/1 - 你如何将其路由到脚本的正确部分。
如果还有其他 SO 问题(我已经搜索了很长时间)或任何进一步的教育示例,请给我指出正确的方向。
更新
我在那里找到了一些路由 PHP 类,但没有什么是小的,并且按照它在 jar 头上所说的那样做,一切似乎都在做路由 + 2000 其他事情。
我现在有了这个项目所需的所有类,我希望从 URI 访问它们,即:
/数据/用户 /数据/用户/1 /哈希/用户 /哈希/用户/1 /put/users/1?json={数据}
所以所有这些都应该使用 users
类,然后是 data、hash 或 put 方法之一,将之后的任何其他内容作为参数传递给方法。
如果有人能解释一下这个位是如何工作的,那将是一个巨大的帮助!
谢谢:)
最佳答案
从一开始,您指出的网站似乎不包含路由器或调度程序。有很多 PHP5 框架,包括路由和/或调度或一些描述。 ( http://en.wikipedia.org/wiki/Comparison_of_Web_application_frameworks#PHP )
路由器是一个具有预定义路由列表的类,这些路由可能非常基本,也可能非常复杂,一切都取决于您想要做什么。一个好的 REST 路由器 IMO 看起来像这样:
:module/:controller/:params
然后路由器会根据 HTTP 请求(GET、POST、PUT、DELETE、OPTIONS)路由到正确的操作
public function getAction($id) {
// Load item $id
}
关于PHP REST API 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665508/