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