我一直在阅读这篇文章来学习如何构建一个 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/