REST API模式的起源:PUT采用GET返回的内容

时间:2015-11-03 20:00:18

标签: api rest design-patterns

我们使用一种模式,其中客户端(例如Angular)可以使用GET /things获取一组资源表示(aka实体),并将这些实体中的任何一个作为有效负载返回到PUT /things/{id}

一切都很好(只要id在uri而不在有效负载中),除非GET响应实体包含在PUT中没有意义的摘要信息。

尽管如此,我正在寻找这种GET-out,PUT-in模式的起源或支持者(有或没有对现实的修改),以便清楚地表明它不是REST规范的一部分。我发现了一些案例,其中诸如此类的纯粹惯用选择被美化为“RESTful”,而例外 - 通过扩展 - 异端。我认为这个过程叫做pseudepigrapha。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

RESTful不会告诉您操作级别的事情。事实上,与流行的看法相反,HTTP并不是官方的事实上的REST通信协议,但由于它在WWW(万维网)上作为选择协议的广泛采用而变得如此。因此,通过GET获取某些内容然后将其作为PUT发回的问题不是一个规范。而是它可能作为一种实践而发展的东西,不能被提倡作为设计原则/规范。

REST是一种架构。 REST或Representational State Transfer处理通过网络传输的实体状态的表示。在实际实现中 - 实体是业务对象,表示采用JSON格式,状态由每个JSON消息中通过网络协议承载的值组成。

回到你的问题,因为HTTP本身不是由REST决定的,首先进行HTTP-GET然后HTTP-PUT的设计不是规范。它充其量只能被引用作为最佳实践。