使用PHP的RESTful Web服务

时间:2015-11-14 04:12:23

标签: php web-services restful-url

我们的数据库中的数据为book-idtitleyearpriceauthorcategory。我们需要使用php从数据库中检索数据。我们可以通过book-id=123www.localhost/books/?book-id=123方法,通过$_GET检索一本书的数据。但我的要求是,当我提供网址时,我希望看到有book-id=123的图书信息:www.localhost/books/123 我正在使用Wamp服务器。

2 个答案:

答案 0 :(得分:0)

您必须为Apache启用mod_rewrite。在此之后,您可以使用这样的重写规则:

RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)$ /$1/?id=$2

在.htaccess文件中。此规则会在内部将books / 123重定向到books /?id = 123。

另请参阅:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

答案 1 :(得分:0)

这里有两种方法。

错误的做法: 一种方法是使用您的网络服务器提供网址rewrite rules(就像Apache Web Server的其他答案一样)。正如另一个答案所示。但是,对于应用程序可移植性而言,这不是正确的做法,因为您的应用程序依赖于您的Web服务器类型来路由URL。

正确的方法: 正确的方法是进行应用程序级路由,并尽可能减少Web服务器的路由开销。只需将您的Web服务器指向PHP应用程序的一个入口点(例如一个index.php)。这意味着传入的URL路径匹配regex。我建议使用现有的框架来提供Laravel之类的路由功能,以防止在regex中出现任何丢失的极端情况。

例如,如果你真的想自己实现,你可以做的是遵循以下步骤:

$booksRoute = /^(\/)?books(\/)?[0-9]+(\/)?$/;
route($booksRoute, function() {
   // process in the closure function
});