【问题标题】:REST convention for DELETE and UNDELETEDELETE 和 UNDELETE 的 REST 约定
【发布时间】:2015-09-02 19:15:23
【问题描述】:

想知道如何将单个端点用于这些操作。这实际上不是删除,而是设置标记已删除 = 0 或 1,所以我在考虑 put,如果它是实际删除,我会使用 DELETE(也请确认这一点)

但是如何在服务器端区分这两个调用。

PUT /product/:id   (to delete)
PUT /product/:id   (to undelete) 

DELETE /product/:id (to delete)
DELETE /product/:id (to undelete)

编辑 我已经为产品的定期更新设置了 PUT,比如说它的名称、数量等,所以它与定期更新与取消删除有点冲突。也请告知

【问题讨论】:

  • @LutzHorn 请发表评论。

标签: rest uri naming-conventions


【解决方案1】:

(因为你不能使用 PUT)我会推荐:

DELETE /product/:id   (to delete)
PATCH /product/:id  (to update/undelete)
// and just send a simple payload/query parameter specifying the `IsActive` bit.) 

对于 PATCH,我需要取消删除它,因此它会更新字段子集。在服务器上,您将拥有一个控制器并查看 http 方法 (PATCH| DELETE)

【讨论】:

  • 但我已经为更新产品详细信息设置了 PUT,这与我现有的更新操作与取消删除有点冲突,知道我的意思吗?
  • 您可以发送PATCH 并发送IsActive
  • 我喜欢PATCH,所以实际上PATCH用于标记为删除或isActive位,实际删除(删除行)将与DELETE一起发生
  • 与此相关的东西,我有两个页面,一个显示活动产品/GET products,另一个显示已删除(或非活动产品)(同一端点)/GET products。您能否添加关于如何区分显示这两种类型的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 2022-07-29
  • 2012-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
相关资源
最近更新 更多