我发现有必要理解为什么在URI中包含动作谓词违反了URI语法的REST协议?当我阅读下面的文章时,我感觉有太多人对动词产生过多的噪音,并且他们应该对内容类型产生更多的噪音:
在完美的世界中,客户端浏览器都支持GET,POST,PUT和DELETE以进行请求操作.但是,只支持GET和POST,这意味着我们一直试图通过在URL中使用常见的动作谓词来识别应该是PUT和DELETE的操作,如视图,创建,编辑和删除.
这是如何违反REST架构原则的精神,以及通过将"删除"之类的内容放入URL而不是使用"删除"而遇到的障碍是什么?
Dar*_*ler 15
围绕URI的指导的唯一有效理由是鼓励正确使用REST动词.如果请求根据HTTP标准执行与客户端期望一致的操作,那么url包含的内容实际上并不重要.
基于名词命名URL使得创建与GET,PUT,POST和DELETE的预期目的一致的行为变得很自然.
当你在URL中放入动词时,它会变得非常混乱,因为http动词通常会与URL中的动词产生矛盾的行为.REST规则说你必须尊重HTTP动词,但通常url更具描述性,因此它可能会产生误导.
浏览器仅支持HTTP谓词子集的事实并不真正相关,因为即使您对所有HTTP谓词都有完全访问权限,您仍然需要能够为其他动词建模,例如打印,关闭,确认,取消.
在谈论REST实现时,人们需要更多地关注内容类型而不是URL结构,这是绝对正确的.
让你的URL引用名词不是一个REST约束,它是关于鼓励人们陷入成功的陷阱.
| 归档时间: |
|
| 查看次数: |
6830 次 |
| 最近记录: |