php - 在没有框架的情况下路由 REST 请求?

标签 php api rest

我一直在阅读这篇文章来学习如何构建一个 rest API:

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

有一次它说“假设您已将您的请求路由到用户的正确 Controller ”

没有框架我怎么能做到这一点?

我正在编写一个 REST API,我可以从不同的应用程序与之交互。我准备了上面的教程,它大部分都有意义,但我不完全理解将我的请求路由到用户的正确 Controller 意味着什么。

最佳答案

假设您使用的是 Apache,您可以结合使用 mod_rewrite 和一些基于 PHP 的逻辑来轻松完成此操作。例如,在您的 .htaccess 或 vhost 定义中,您可以通过单个处理程序路由所有请求,可能是 index.php:

# Don't rewrite requests for e.g. assets
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*+)$ index.php?q=$1 [L]

...然后在您的 index.php 文件中执行如下操作:

$target = $_REQUEST['q'];
/* parse the request and include the appropriate controller PHP */

例如,对 /products/1234 的请求可能会导致包含 controllers/products.php 处理程序。然后该处理程序可以对产品 1234 执行操作。因为您使用的是 REST,所以您不需要关心具有查询字符串参数的原始请求。

有多种方法可以完成您想要做的事情,这只是其中之一。最终,您的选择将取决于您的具体要求。上面的模式相当普遍,但是许多框架都使用它或类似的东西。

关于php - 在没有框架的情况下路由 REST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921249/

相关文章:

php - Laravel 验证独特的软删除

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

rest - 使用backbone.js进行开发,如何检测多个用户(浏览器)尝试更新的情况?

javascript - 从纯 javascript 使用 salesforce chatter rest 服务

php - "invisible"数据 HTML 标签

php - 获取解码的 JSON 数据时不断收到 "Array"?

php - 谷歌音译在 SSL 访问网站中不起作用

Chrome网上应用店中用户计数的API调用?

php - 无需开发人员/api key 即可从 youtube 获取 Youtube 标题

java - Jersey :@Consumes 在未设置内容类型时无法正常工作