6

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

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

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

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

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

4

2 回答 2

3

假设您正在使用,您可以使用一些基于 PHP 的逻辑Apache的组合轻松完成此操作。mod_rewrite例如,在您的.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处理程序。然后,该处理程序可以对 product 采取行动1234。因为您使用的是 REST,所以您不需要关心具有查询字符串参数的原始请求。

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

于 2012-12-17T20:07:35.657 回答
0

我认为这是一个术语问题。每个具有某种概括程度的代码都可以称为“框架”。而且由于您询问的是“路由”,它提供了一个初步的泛化水平,因此每个实现都成为一个框架。

如果您不想使用现有的成熟框架,您可以详细说明自己的轻量级实现。这里有一些文章开始:

所有这些介绍都包括对路由机制的解释并演示其实现。

基本上,路由器是应用程序内部的一种内部“ DNS ”(比喻意义上的)。当请求到达您的站点时,您需要根据该请求属性将其分派给适当的工作人员类。这是路由器的任务。

于 2012-12-17T20:09:25.270 回答