PHP REST webservice:那些url是逻辑还是物理?

时间:2011-01-11 15:04:07

标签: php rest webservice-client

您好我正在尝试使用PHP使用REST架构构建应用程序的服务器端。后来我会让android的客户端使用这些服务。

我已经知道什么是RESTful应用程序。

但仍然有些混乱:

如果我想获取用户的检索信息,我应该根据REST访问的网址是www.domain.com/user/123。但这意味着对于DB中的每个用户,我应该制作一个.php ??这听起来不合逻辑。或者像java那样使用逻辑URL,或者只是将URL重写为www.domain.com/getusr.php?id=123 ??

修复:url是否重写了正确的方法来解释来自客户端的请求URL以获取php中的web服务? 例如:如果有人要求www.domain.com/user/123,我应该重写为www.domain.com/getusr.php?id=123

或者php不适用于webservice?

感谢

2 个答案:

答案 0 :(得分:1)

您需要将网址重写为www.domain.com/getusr.php?id=123,这样您只需要1个php文件,www.domain.com/user/123形式的所有请求都会转到单个getusr.php文件。你可以使用apache mod_rewrite实现这个(有大量的例子,所以我不会发布另一个)。


修改

检查this link,其中包含一些很好的示例。

或者您可以使用此代码(将其放在您的web目录的根目录下的“.htaccess”文件中,其中getusr.php应该全部放置)

RewriteEngine on
RewriteRule ^user/([0-9]+)$ getusr.php?id=$1

答案 1 :(得分:0)

我喜欢Drupal的做法。 Drupal对其所有路由使用q参数:

http://myserver/drupal/?q=node/234

如果启用了mod_rewrite,则变为

http://myserver/drupal/node/234

这样,您只需要解析$_GET['q']

的内容

比为每条路线制定一系列单独的重写规则要清晰。