【发布时间】:2017-10-16 23:59:09
【问题描述】:
我知道这可能是关于这个问题的第 1 次讨论,但我找不到具体问题的答案。
我们有一个内部讨论是否使用 PUT 来更新我们的 rest 服务。我们已经同意优先使用 PUT。但是,PUT 需要是幂等的。这是否意味着我们应该根据幂等性为不同的更新路由混合 POST 和 PUT 动词?
作为一个具体的例子。我们有一个更新路线,更新,比方说“汽车”。对于此更新路线,您可以(除其他外)传递超链接。此超链接在保存时将获得一个 id,并将链接到更新的汽车。但是每次在车上更新,生成的超链接的id都会不一样。这是否意味着更新不再是幂等的?即使超链接的实际目标是相同的?
如果是这样,我们应该在此更新中使用 POST 动词,而不是 PUT 动词。但是,我们还有许多其他更新路由是幂等的。他们应该保持 PUT 吗?我相信这对于服务的消费者来说可能会变得非常混乱。
简而言之:
- 根据是否具有幂等性,混合 PUT 和 POST 来更新路由是否是个好主意?
- 还是说动词的一致性胜过幂等规则,我们是否应该简单地将 PUT 用于所有更新路由?
- 还是应该放弃使用 PUT 并在任何地方使用 POST 来完全避免混淆的想法?
【问题讨论】:
标签: rest post asp.net-web-api put