您好我正在尝试使用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?
感谢
答案 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']
。
比为每条路线制定一系列单独的重写规则要清晰。