首页
学习
活动
专区
圈层
工具
发布

置幂等
EN

Stack Overflow用户
提问于 2012-02-26 04:45:48
回答 2查看 1K关注 0票数 2

如果模型包含一个称为“创建”和“更新”的字段

当您使用PUT更新此记录的内容时。

应该将

  1. 设置为数据创建或修改的时间?由于PUT是幂等的,所以它不应该依赖于以前的值
  2. ,因为在发出请求时总是会修改更新的,所以它违反了幂等的原则?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-26 04:57:15

应该被设置为数据创建或修改的时间吗?因为PUT是幂等的,所以它不应该依赖于先前的值。

我不太明白你在问什么。没有理由将created_at设置为修改时间,因为它们是两个不同的概念。

自更新后总是在发出请求时被修改,所以它违反了幂等原理?

updated_at总是被修改的假设是不正确的(至少在Rails中不存在,也不应该在任何其他地方)。如果多次执行相同的PUT,则不违反幂等性,因为这些后续请求不会修改任何属性,因此updated_at时间不会更改。

有一个有趣的post on the Rails blog about PUT & PATCH,它增加了更多内容。在我看来,用户不应该将请求发送给created_atupdated_at (因为服务器通常应该忽略它们并自行设置它们),但是如果这违背了PUT应该发送整个对象的想法,这是值得怀疑的。但是,如果这个想法被忽略(就像在Rails中一样,也许在其他地方也是如此),那么PUT确实是幂等的。

票数 6
EN

Stack Overflow用户

发布于 2012-02-26 09:35:49

使用put,您不会改变created_at,您可以更改modified_at或其他任何名称。Created_at只在创建时设置。顺便说一下,post和put都可以用来创建和更新值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9450611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档