当前位置:  开发笔记 > 编程语言 > 正文

宁静只适用于Web服务,还是适用于Web服务和Web页面?

如何解决《宁静只适用于Web服务,还是适用于Web服务和Web页面?》经验,为你挑选了1个好方法。

我阅读了很多关于PHP的Restful教程.

(我不想深入探讨为什么我不使用RoR.这是由于团队更熟悉PHP)

因为我们计划将来扩展到API,所以我认为实现Restful Web服务很重要.

我看了很多教程

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

显然宁静是为web服务.

网页怎么样?它们也可以是RESTFUL吗?

如果答案是否定的,请不要超出这条线并告诉我.谢谢.

我知道让网址看起来像RESTFUL网址就是简单地使用mod_rewrite.但是,我很确定,宁静的架构不仅仅是让网址看起来不错.

例如,我在名为list.php的网页上有一个项目列表.每个项目旁边都有一个删除链接.例如,list.php?id = 1&deleteitem

当有人点击list.php?id = 1&deleteitem链接时,我会回到同一个list.php文件并检查$ _GET中的param deleteitem.

如果检测到,我将根据$ _GET中的参数id从数据库中删除.

之后我将重定向回list.php没有任何参数.

我想知道,我如何使整个流程RESTFUL?

我问,因为在REST中,要删除一些你需要使用HTTP请求方法(DELETE).

很明显,在我的链接中,它们都很简单 Delete

请赐教.

我的编程并不那么强大,如果给出的建议尽可能地成为外行,那将是很好的.

谢谢.

编辑

我有2个跟进问题.

问题1)由于这是一个带分页的项目列表,如果我想让它成为RESTful,URL会是什么样子?

问题2)因为我在列表中的每个项目旁边放置DELETE链接,我现在明白了,我应该使用

代替.

但表格应该张贴到哪里?项目网址?/项目/ {项目-ID}

但是我想回到这个列表页面,在成功删除数据库中的行后显示成功消息.

当我使用成功消息刷新此列表页面时,我还想避免弹出消息.

如果我发回这个list.php网址,那么它不是RESTful是吗?因为下面的答案我告诉我每个项目都是需要自己网址的资源.

请赐教.谢谢.



1> Anurag..:

RESTful通常在引用Web服务时使用,但它非常适用于Web页面.简而言之,RESTful就是处理资源.资源可以是人,书,电影,剧院,票,或任何你喜欢的东西.

您可以对资源执行四种基本操作.

创建(POST)

读(GET)

更新(PUT)

删除(删除)

大多数Web浏览器不支持PUTDELETE操作,因此您只能使用POST操作来发送数据.Rails通过传入一个名为_method框架拾取的隐藏参数来伪造PUT和DELETE,并根据该值对其进行路由.

此外,你永远不应该使用GET任何破坏性的行动.任何改变你的资源(S)的国家行为,应该被称为要么POST,PUTDELETE与该变更(假PUT/POST与DELETE如果需要的话).

我建议你查看在Rails中处理RESTful路由的方式,只是为了得到一个想法,如果没有别的.尽管上面的四个动作足以以任何可能的方式修改资源,但Rails还引入了其他三种听起来很有用的动作.

index(列出所有项目的视图)

new(通常是添加新资源的表单视图)

编辑(通常是更新现有资源的表单视图)

在设计RESTful网站时,漂亮的网址肯定在桌面上,但最大的好处可能是代码质量自动提升.当您只处理资源,并且只有四个可以应用于资源的潜在操作时,事情就会开始自行清理.

编辑1:自我描述性URL是首选,将使您的生活更轻松,但没有什么能阻止创建唯一标识资源并使用HTTP谓词管理它的神秘URL.以下URL(使用md5)唯一标识资源的URL完全是RESTful.

// represents a person "John Doe"
http://example.com/4c2a904bafba06591225113ad17b5cec

// represents the movie "Lord of the Rings: The Two Towers"
http://example.com/1d9198260dec7bda3fb21e232d60fec3

// represents the "Formula One" sport
http://example.com/fs340as?id=23xa12&type=SP012Ts

那是在那里的REpresentational State Transfer.MD5哈希就像保持不变的资源的邮件地址一样.表示可以是电影的细节(在html/xml/json /等中),也可以是电影本身的视频,具体取决于客户端的功能).

编辑2:假设你有一个资源,这是一个countries世界的集合.它可以用URI和HTTP动词表示,例如:

GET /countries

由于分页是应用程序的属性而不是资源本身,因此您可以提供查询字符串参数来控制它.

GET /countries?page=1

一个国家也是一种资源,是国家资源的一部分.您可以使用以下URL标识国家/地区:

/countries/

可以使用以下动词执行此国家/地区的操作:

GET    /countries/
POST   /countries  -- the new country has no existing representation
PUT    /countries/
DELETE /countries/

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有