中国开发网: 论坛: 程序员情感CBD: 贴子 725381
haitao
关于REST的怎么实现更好,逃离那棵大树,在新贴总结一下
我是说完全分离是不可能的,不如一开始就统一存放各类信息,以便后台统一获取信息(操作、对象、请求者、。。。。。)


为了统一和简单,REST应该放弃使用http头GET、POST、PUT和DELETE来表达操作

所有类别的信息均放在query或post的data里,这样REST的软件依赖性更小。
因为
1、有些http客户端只支持get(query)或post;
2、以后的应用可能需要更多的信息类别(注意是信息类别,而不是具体信息项),最终还是要混合放在get的query或post的data里的。

所以,不如一开始就建议 操作者身份(id或session)类、操作动作类、操作对象类(以及以后可能出现的更多的、新的信息类别,应用的模式发展很难预料) 均放在post的data里。
不支持post的客户端,可以放在get的query里。
后端获取这些信息时,顺序从 query/data/cookies 里按名(name或tag)取信息(value),取到即返回。
这样,不支持cookie、data的客户端,也一样可以工作


这才是彻底符合简单、通用、统一的原则——这也是REST本来主张的,也是它的出发点


——其实没必要说这么多,还是论坛讨论的不方便
——例如我说到“action=xxx该放在query或data里”,对方就以为我对REST规定的操作放在http头里的http头理解不对。。。。。。。。。其实我一开始就知道REST规定的操作放在http头,所以才反感特意把操作放在一个特别的地方(只不过http协议正好有这个所谓的动作而已——随着后台应用的普及,基本都是只需要get/post的了,好像还有一些特别的动作,如dev/opt之类的,更是应该丢弃)
——例如我说到(把REST抬这么高,REST一定要把操作放在GET/POST这个与query/data不一致的位置)装神弄鬼,对方就以为说他个人,又岔开一大分支。。。。。。。。
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录