我读了很多 PHP 的 Restful 教程。
(我不想深入探讨为什么我不使用RoR。这是因为团队对PHP更加熟悉)
因为我们计划未来扩展 API,所以我了解到实现 Restful Web 服务非常重要。
我看过诸如此类的教程
http://www.gen-x-design.com/archives/create-a-rest-api-with-php/ http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
显然,restful 是针对网络服务的。
那么对于网页呢?他们也能安静吗?
如果答案是否定的,请不要超出此范围并告诉我。谢谢。
我知道要使 url 看起来像 RESTFUL url,只需使用 mod_rewrite。然而,我非常确定,宁静的架构不仅仅是让网址看起来漂亮。
例如,我在名为 list.php 的网页上有一个项目列表。每个项目旁边都有一个删除链接。例如,list.php?id=1&deletitem
发生的情况是,当有人单击 list.php?id=1 deleteitem 链接时,我当然会返回到同一个 list.php 文件并检查 $_GET 中的参数删除项。
如果检测到,我将根据 $_GET 中的参数 ID 从数据库中删除。
之后我将重定向回 list.php,无需任何参数。
我想知道,如何让整个流程变得轻松?
我问这个问题是因为在 REST 中,要删除某些内容,您需要使用 HTTP 请求方法(DELETE)。
显然在我的链接中它们都只是简单<a href="list.php?id=1&deleteitem">Delete</a>
请赐教。
我的编程能力不是很强,如果给出的建议能尽可能通俗一些就好了。
谢谢。
EDIT
我有 2 个后续问题。
问题 1) 由于这是一个带有分页的项目列表,如果我想使其成为 RESTful,URL 会是什么样子?
问题 2)由于我将删除链接放在列表中的每一项旁边,我现在明白了,我应该使用
<form method="POST">
<input type=hidden name="_method" value="delete">
<input type="submit" >
</form>
instead.
但是表格应该张贴到哪里?商品网址? /items/{item-id}
但我想在成功删除数据库中的行后返回到显示成功消息的列表页面。
当我用成功消息刷新此列表页面时,我还想避免弹出消息。
如果我发回这个 list.php url,那么它不是 RESTful 是吗?因为下面的答案告诉我,每个项目都是一个需要自己的网址的资源。
请赐教。谢谢。