【问题标题】:In REST API, can DELETE methods have parameters?在 REST API 中,DELETE 方法可以有参数吗?
【发布时间】:2016-04-28 15:02:56
【问题描述】:

在 REST API 中,当需要参数来确定需要删除哪些资源时,我们如何创建 DELETE 方法?

例如,照片可以同时属于用户和群组,如果我们有照片的端点,我们将需要额外的信息来确定我们是否要删除用户照片或群组照片,例如,

 /photos?userId={userId}
 /photos?groupId={groupId}

这是一种很好的 Restful 做法吗?

或者,DELETE 是否应该严格地仅通过 users/:id/photo 或 groups/:id/photo 端点发生?

【问题讨论】:

  • 您是在问如何(与任何其他方法相同)或者这是否是一个好的设计选择(为此:stackoverflow.com/questions/2539394/…
  • 请举个例子?准确理解您的要求有点棘手。我认为你问的是删除 /photos?userId={userId} 是否是 RESTful。对吗?
  • 是,或来自同一端点的 /photos?groupId={groupId}

标签: rest


【解决方案1】:

在集合上使用 DELETE 并按查询参数进行过滤并没有错。 REST 论文和 HTTP 规范都没有提到不这样做。

这与@Thilo 所链接的问题的答案不同,因为情况不同。这个问题是关于包括“不,真的,删除它!”查询参数,不合适。您正在使用查询参数来过滤应删除的结果。

【讨论】:

    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2013-06-30
    • 2018-12-19
    • 2014-09-06
    • 1970-01-01
    相关资源
    最近更新 更多