如果您的模型包含称为“created”和“updated”的字段,
当您使用PUT更新此记录的内容时...
1.应该将“created”设置为数据创建或修改时的时间吗?由于PUT是幂等的,所以不应该依赖先前的值。
2.由于每次请求都会修改“updated”,是否违反了幂等原则?
当您使用PUT更新此记录的内容时...
1.应该将“created”设置为数据创建或修改时的时间吗?由于PUT是幂等的,所以不应该依赖先前的值。
2.由于每次请求都会修改“updated”,是否违反了幂等原则?
created应该设置为数据创建时间还是修改时间?由于PUT是幂等的,所以它不应该依赖于先前的值。
我不太理解你在问什么。没有理由将created_at
设置为修改时间,因为它们是两个不同的概念。
由于每次请求都会修改updated,这违反了幂等原则吗?
你的假设updated_at
总是被修改并不正确(至少在Rails中不是这样,在其他地方也不应该)。如果你多次进行相同的PUT
请求,幂等性不会受到影响,因为这些后续请求不修改任何属性,因此updated_at
时间不会改变。
有一篇有趣的Rails博客文章,关于PUT
& PATCH
,这篇文章对此进行了更深入的探讨。在我看来,用户不应该在请求中发送created_at
或updated_at
(因为服务器通常应该忽略它们并自行设置),尽管这确实值得怀疑是否违反了PUT
应该发送整个对象的想法。然而,如果忽略了这个想法(就像在Rails中经常发生的情况,也许其他地方也是如此),那么PUT
确实是幂等的。
使用put方法时,您不会更改created_at,而是更改modified_at或其他名称。 Created_at仅在创建时设置。 顺便说一句,post和put都可以用于创建和更新值。
PUT
请求完成后,对象的created_at
什么时候会改变呢? - Andrew Marshall