如果http方法和实现的CRUD操作不同,RESTAPI会发生什么变化?

如果http方法和实现的CRUD操作不同,RESTAPI会发生什么变化?,rest,http,Rest,Http,引用文件 REST指南建议对向服务器发出的特定类型的调用使用特定的HTTP方法(虽然从技术上讲,可能违反此指南,但这是非常不鼓励的) 我想知道如果我违反了这个准则会发生什么?因为最终取决于我在API中添加了什么功能。我甚至试过这个。我使用了http方法get,并在其中实现了删除功能。令我惊讶的是,它工作得很好。我希望得到一些警告或错误,但什么也没有得到 那么,这是否意味着REST只是一个要遵循的标准,而不遵循它不会破坏我的API?我的API不再是restful了吗?这是什么 请原谅我质问的幼稚。

引用文件

REST指南建议对向服务器发出的特定类型的调用使用特定的HTTP方法(虽然从技术上讲,可能违反此指南,但这是非常不鼓励的)

我想知道如果我违反了这个准则会发生什么?因为最终取决于我在API中添加了什么功能。我甚至试过这个。我使用了
http
方法
get
,并在其中实现了删除功能。令我惊讶的是,它工作得很好。我希望得到一些警告或错误,但什么也没有得到

那么,这是否意味着
REST
只是一个要遵循的标准,而不遵循它不会破坏我的API?我的API不再是restful了吗?这是什么


请原谅我质问的幼稚。在这方面我是个新手。

背景:REST的权威定义是。休息不是一个标准,它是一个标准

HTTP是一种标准化的应用程序协议。HTTP是万维网的支柱之一,万维网是受REST体系结构风格影响的参考应用程序

因此,我们有一个标准来描述HTTP消息的含义(例如,请求方法令牌是HTTP消息的主要来源,需要通过请求提供的其他元数据进行进一步澄清)。因为我们有这个标准,我们可以构建很多通用组件(比如web浏览器或缓存),它们可以做一些智能的事情,因为它们理解请求的广泛语义

我使用http方法get并在其中实现了删除功能。令我惊讶的是,它工作得很好

是的,的确如此。直到它没有

下面是菲尔丁:

HTTP并不试图要求GET的结果是安全的。它所做的是要求操作的语义是安全的,因此,如果发生任何导致财产损失的情况(顺便说一句,金钱被认为是财产),则这是实现的错误,而不是接口或该接口的用户的错误

注:“执行错误”位

广泛的问题是:GET的语义是,因此,通用组件可以在任何方便的时候获取资源——例如,在像Google一样爬行web时,或者在浏览器中预取网页以减少延迟,以防用户想要单击链接

通用组件可以假设您的资源理解消息的方式与web上的其他组件相同,这允许我们拥有更智能的通用组件,这是统一接口约束的要点

如果我们得到了你的资源,你删除了一些东西,因为这是你处理get请求时所做的,而破坏是删除的结果。。。那是你的错