Naz*_*ain 1 specifications http http-patch
它在HTTP Spec上提到PATCH是not幂等的.
幂等的基本定义是:
幂等HTTP方法是一种HTTP方法,可以多次调用而不会产生不同的结果
所以如果我们进行HTTP调用
PATCH /users/1
{
"username": "dummyUser"
}
Run Code Online (Sandbox Code Playgroud)
无论我们在HTTP端点上面调用多少次,它总是意味着要将username用户更新1为dummyUser.
PATCH对于更新任何资源的1个或多个属性的任何请求,这几乎相同.
那么为什么HTTP Spec指定PATCH是not幂等的呢?
首先,重要的是澄清这Idempotent: No并不意味着它永远不会是幂等的,它意味着它不一定是幂等的,即它不是必须的.
因此,在您的示例中,它似乎是幂等的,因为在多次重复调用同一PATCH请求之后资源的状态是相同的.
但考虑一个假设的PATCH请求,如:
PATCH /users/1
successful_logins++
Run Code Online (Sandbox Code Playgroud)
successful_logins每次调用时,此请求都会将用户的属性增加1.如您所见,它不是幂等的,因为连续的请求会导致对资源的额外修改.
这与该PUT方法形成对比,该方法必须包含所有资源属性的绝对值.
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |