【发布时间】:2017-12-07 22:23:15
【问题描述】:
我阅读了很多关于 REST API 的内容,但我总是偶然发现术语幂等性。基本上 GET、HEAD、PUT、DELETE 和 OPTIONS 都是幂等的,而 POST 不是。
http://www.restapitutorial.com/lessons/idempotency.html 上的这句话让我怀疑我对幂等性的理解。
从 RESTful 服务的角度来看,对于操作(或服务调用) 为了幂等,客户端可以重复调用相同的调用,同时 产生相同的结果。换句话说,使多个相同的 requests 与发出单个请求具有相同的效果。注意 而幂等操作在服务器上产生相同的结果(没有 副作用),响应本身可能不同(例如 资源的状态可能会在请求之间改变)。
那么幂等性实际上与服务器工作或响应有关吗?
如果我有什么让我感到困惑
GET /users/5
返回
{
"first_name" : "John",
"last_name" : "Doe",
"minutes_active": 10
}
然后在一分钟后做同样的请求,我会得到
GET /users/5
{
"first_name" : "John",
"last_name" : "Doe",
"minutes_active": 11
}
这个幂等性如何?
此外,如果响应包含某种对每个响应都是唯一的 UUID,那会破坏幂等性吗?
最后,幂等性是一遍又一遍的相同服务器工作,还是对于同一个/单个请求一遍又一遍的相同结果?
【问题讨论】:
-
我建议修改标题中的问题。
标签: rest api api-design idempotent