【发布时间】:2012-03-16 01:48:44
【问题描述】:
如果您的模型包含一个名为“created”和“updated”的文件
当您使用 PUT 将内容更新到此记录时..
是否应将 created 设置为数据创建或修改的时间?由于 PUT 是幂等的,所以不应该依赖之前的值
由于发出请求时总是修改updated,所以违反幂等原则?
【问题讨论】:
标签: ruby-on-rails ruby api http rest
如果您的模型包含一个名为“created”和“updated”的文件
当您使用 PUT 将内容更新到此记录时..
是否应将 created 设置为数据创建或修改的时间?由于 PUT 是幂等的,所以不应该依赖之前的值
由于发出请求时总是修改updated,所以违反幂等原则?
【问题讨论】:
标签: ruby-on-rails ruby api http rest
是否应将 created 设置为数据创建或修改的时间?由于 PUT 是幂等的,所以它不应该依赖先前的值。
我真的不明白你在这里问什么。没有理由将 created_at 设置为修改时间,因为它们是两个不同的概念。
由于发出请求时总是修改updated,所以违反幂等原则?
您认为updated_at 总是被修改的假设是不正确的(至少在 Rails 中不是,也不应该在其他任何地方)。如果您多次执行相同的PUT,则不会违反幂等性,因为这些后续请求不会修改任何属性,因此updated_at 时间不会更改。
有一个有趣的post on the Rails blog about PUT & PATCH 对此增加了很多。在我看来,用户永远不应该在他们的请求中发送created_at 或updated_at(因为服务器通常应该忽略它们并自行设置它们),尽管这是否违反了@987654330 的想法确实值得怀疑@ 应该发送整个对象。但是,如果忽略这个想法(因为它经常在 Rails 中,也许在其他地方),那么PUT 确实是幂等的。
【讨论】:
PUT 请求完成后,对象何时会拥有不同的created_at?
用 put 你不改变 created_at 你改变 modified_at 或任何它被称为。 Created_at 仅在创建时设置。顺便说一句,post 和 put 都可以用来创建和更新值。
【讨论】: