rest - 在没有实体 ID 的 REST API 中删除最佳实践

标签 rest

我想在 REST API 中删除一个时间跨度。

它没有 id 所以在“/timespan/”上调用 HTTP DELETE 是不可能的。实现是可能的,但我宁愿不付出额外的努力(需要一些数据库修改),除非有充分的理由添加它。

我考虑过在请求中使用“开始”和“结束”对“/timespan/”调用 DELETE,但据我所知,这与 REST 的工作方式冲突。

在“/timespan//”或诸如“/timespan/+”之类的连接上调用 DELETE 是否合法,或者我到底应该实现 ID 吗?

最佳答案

你是对的。 DELETE 不删除正文。

RFC 7231:

A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.

我已经看到你想做什么了

删除/sites/{siteId}/maintenance

但这确实不是最佳选择。如果 maintenance 是一种资源,则需要某种方式来唯一标识它。如果它是资源的属性,则您可以通过该资源上的 PUTPATCH 将其删除。

关于rest - 在没有实体 ID 的 REST API 中删除最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31478866/

相关文章:

java - Jersey 如何迭代参数?

Vert.x 上的 Java Rest API

rest - 查询mirth connect消息存储

azure - API错误System.ArgumentException : Format of the initialization string does not conform to specification starting at index 258

http - 需要身份验证的内容的 REST http 状态代码?

javascript - main.js :295 DELETE http://127. 0.0.1:8081/messages/:0 Javascript 中的 405(方法不允许)

java - 防止 Restful 中的 xml 转义 (JAXRS)

node.js - REST 发布信息未通过 multipart/form-data 收到

c# - WCF REST API - 使用 REST API 时出错“值不能为空。参数名称 : key:

rest - 我正在尝试构建一个应用程序以使用 HTTP GET 在线获取数据,但它返回一个空列表