PHP REST API 路由

标签 php api rest routing

我一直在研究 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/

相关文章:

c# - 如何在 StringContent (""中添加变量)

java - 从 javascript 将对象传递给 Rest

php - 如何使用 mySQL 为页面标题、下一篇文章、上一篇文章编写 php 代码?

python - 构建 RESTFul C++ api 以与 Python 交互

api - Cyber​​-Ark特权身份管理API

spring - 使用 spring 和 restful webservice 自定义 HTTP 状态代码

java - 使用 Swagger 文档的异步 Jersey REST API 中的 NullPointerException

php - 将日期从 HTML 插入/获取 PHP 脚本到 MYSQL 数据库

php - 如何通过 PHP 按三列(具有类似信息)排序?

php - Yii 如何使用 json 响应重定向到绝对 URL