根据我所读到的有关RESTful服务的内容,我们应该能够获得一个"资源" (就像数据库记录一样)使用对末尾有记录id的URL的请求,如下所示:localhost / my_records / 1。访问此类URL将显示包含id 1记录信息的网页。
我需要在PHP / Apache / MySQL中实现类似的功能,但我还是比较新的语言。我能创造的最多就是这样 本地主机/ my_records /的index.php?ID = 1。
创建[" / id"]网址似乎需要创建该文件夹。有没有办法实现这个目标?
答案 0 :(得分:1)
配置您的网络服务器以通过单个PHP脚本路由所有请求。这将允许您解析检索到的URL。因为你使用Apache mod_rewite
是要走的路。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L]
这将路由所有不存在的路径/文件请求(如果您希望将任何路由到该脚本,请删除第2行和第3行)通过index.php。然后,您可以在脚本中通过$_SERVER['REQUEST_URL']
答案 1 :(得分:1)
您可以使用任何类型的URL获得RESTful服务,您不需要在最后使用id做一个URL,但这种类型的URL更方便和良好的设计原则。
否则这种类型的URL也称为“友好URL”,大多数PHP框架都提供这种类型的URL,例如,Symfony,Code Igniter,Laravel ...提供此功能。
如果你想要这种类型的URL而不使用任何PHP框架,你可以查看这个答案和答案:How to create friendly URL in php?
在我看来,实现良好REST Api的一个好框架是Code igniter + Phil Sturgeon Rest Client。更多信息:
答案 2 :(得分:0)
从本质上讲,您所寻找的是通常称为请求路由的东西。通常,这是通过服务器级别和应用程序级别的配置组合实现的。
有许多PHP框架可以做到这一点,至少你可以寻求指导(如果不是完全使用它们)。