为了性能,你会违反REST的幂等性原则吗?

时间:2014-11-24 16:27:26

标签: performance rest http architecture restful-architecture

我正在为电信行业开发一款低延迟应用程序,主要工作流程触发计算如下:

  1. 调用REST API(POST / workflow + payload)
  2. REST Web应用程序将在快速访问缓存存储中执行高度并行化处理
  3. 其余调用将返回响应(可能是4或5个字段的JSON对象)
  4. 现在,我最初的想法是遵循REST设计原则,是做2个REST API调用,一个是POSTS来触发处理,然后返回201,处理结果的位置在头部(因为我的理解是REST)调用可以更改或返回资源,但不能同时更改或返回,然后自动重定向到GET调用。

    现在请记住,我正在尽可能地减少延迟,而HTTP重定向显然会增加。如果我让我的POST返回有效负载而不是重定向到GET,这样可以吗?有什么影响?

    干杯,

1 个答案:

答案 0 :(得分:2)

首先,POST不是一种幂等方法,因此POST不能真正违反幂等性。"

其次,POST没有理由不返回新创建的资源的表示。事实上,根据RFC7231(RFC2616的新替代品之一),它甚至可以被缓存用于后续的GETS。见4.3.3节:

  

对于原始服务器希望客户端能够缓存的情况   POST的结果可以被以后的GET使用,即   源服务器可以发送包含结果和a的200(OK)响应   内容 - 位置标题字段...