如果您的模型包含一个名为“created”和“updated”的文件
当您使用 PUT 将内容更新到此记录时..
created应该设置为数据创建时间还是修改时间?由于 PUT 是幂等的,因此不应依赖于先前的值
既然updated总是在你发出请求的时候被修改,那么违反了幂等原则?
最佳答案
Should created be set to the time of data creation or modification? Since PUT is idempotent, so it should not rely on previous value.
我真的不明白你在这里问什么。没有理由将 created_at
设置为修改时间,因为它们是两个不同的概念。
Since updated is always modified when you issue the request, so it violated the principle of idempotent?
您关于 updated_at
总是被修改的假设是不正确的(至少在 Rails 中不是,也不应该在其他任何地方)。如果您多次执行相同的 PUT
,则不会违反幂等性,因为这些后续请求不会修改任何属性,因此 updated_at
时间不是 改变了。
有一个有趣的post on the Rails blog about PUT
& PATCH
这增加了更多。在我看来,用户永远不应该在他们的请求中发送 created_at
或 updated_at
(因为服务器通常应该忽略它们并自行设置它们),尽管它确实是这是否违反了 PUT
应该发送整个对象的想法值得怀疑。然而,如果这个想法被忽略了(就像它在 Rails 中以及其他地方经常发生的那样),那么 PUT
确实是幂等的。
关于ruby-on-rails - 放与幂等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450611/