如果您的模型包含一个名为“已创建”和“已更新”的字段
使用PUT更新此记录的内容时..
应该创建设置为数据创建或修改的时间吗?由于PUT是幂等的,因此它不应该依赖于先前的值
由于在您发出请求时始终会修改更新,因此违反了幂等原则?
答案 0 :(得分:6)
应该创建设置为数据创建或修改的时间吗?由于PUT是幂等的,所以它不应该依赖于先前的值。
我真的不明白你在这里问的是什么。没有理由将created_at
设置为修改时间,因为它们是两个不同的概念。
由于在发出请求时始终会修改更新,因此违反了幂等原则?
您对updated_at
始终被修改的假设不正确(至少不在Rails中,也不应该在其他任何地方)。如果您多次执行相同的PUT
次幂,则不会违反幂等性,因为这些后续请求不会修改任何属性,因此<{1}}时间不会更改。
有一个有趣的post on the Rails blog about PUT
& PATCH
为此增加了更多。我看到它的方式,用户永远不应该发送updated_at
或created_at
他们的请求(因为服务器通常应该忽略它们并自己设置它们),尽管如果这违反了这个想法确实值得怀疑updated_at
应该发送整个对象。但是,如果忽略了这个想法(因为它经常出现在Rails中,也可能出现在其他地方),那么PUT
确实是幂等的。
答案 1 :(得分:0)
使用put你不要改变created_at你改变modified_at或者它被调用的任何东西。 Created_at仅在创建时设置。 BTW,post和put都可以用来创建和更新值。