我一直在读这篇文章:
http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
了解如何构建rest API。有一次它说“假设你已经将你的请求路由到用户的正确控制器”
我一直试图找到一个教程或者说明如何做到这一点的东西,但我读过的所有内容都暗示了一个框架。如果没有框架,我怎么能这样做?
编辑:
我正在编写一个REST API,我可以从另一个应用程序进行交互。我准备好了上面的教程,它主要是有道理的,但我并不完全理解将我的请求路由到用户的正确控制器意味着什么。
答案 0 :(得分:3)
假设您正在使用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,所以您不需要关心具有查询字符串参数的原始请求。
有多种方法可以实现您尝试做的事情,这只是其中之一。最终,您所依赖的将取决于您的具体要求。上述模式相当普遍,但许多框架使用它或类似的东西。
干杯
答案 1 :(得分:0)
我认为这是一个术语问题。具有某种泛化水平的每个代码都可以称为“框架”。既然你在询问“路由”,它提供了一个初始化的泛化水平,那么每个实现都会成为一个框架。
如果您不想使用现有的完全成熟的框架,您可以详细说明您自己的轻量级实现。以下是一些文章:
所有这些介绍包括路由机制的解释并演示其实现。
基本上,路由器是应用程序内部的一种内部“DNS”(在比喻意义上)。当请求到达您的站点时,您需要根据该请求属性将其分派给适当的工作者类。这是路由器的任务。