静态批量更新 API

Batch Updating in Rest API

我有一个关于 REST API 设计的奇怪问题!

有一个名为 users 的资源,并且有不同的 user-types

比如说,如果我想通过 Rest 设计删除一个用户,我会有一个像

这样的端点

删除/users/id

但现在我想删除具有特定用户类型的所有用户,以及我无法作为查询参数发送的其他参数。我阅读了一堆反对使用正文参数进行 DELETE

的文档

所以我认为 POST /users/delete 路线会是更好的选择。

现在我很困惑我的新路由 POST /users/delete 是否可以用于单个用户删除和多个用户删除。这是否违反任何 REST 标准?

如果不是,还有什么方法可以做到这一点?

我相信你能做到。可以使用 REST 方式删除单个资源,使用 POST /users/delete

可以删除多个资源

There is no "official" standard for RESTful web APIs. This is because REST is an architectural style, while SOAP is a protocol. REST is not a standard in itself, but RESTful implementations make use of standards, such as HTTP, URI, JSON, and XML.

-- Wikipedia

所以是的,通过 POST

实现 multi-destroy 并没有违反任何 REST 原则

Does this violate any REST standard?

不 - 它可能违反了一些 Rails 约定,但就 REST 客户端而言它完全没问题。


将您的问题翻译成 HTML 和万维网的语言可能会有所帮助:如果您有两个 不同的 网络,是否违反了 REST 原则向 same 资源提交请求的表单?

答案是否定的 - 它仍然“有效”;浏览器使用标准化的处理规则来获取表单的信息并从中创建适当的 HTTP 请求,然后通过网络将其发送到正确的位置,而无需了解任何语义(除了定义的通用语义之外根据 HTTP 规范)。