我想要有关设计REST API的一些建议,该API将允许客户端有效地向集合中添加/删除大量对象。
通过API,客户需要能够向集合中添加项目,从集合中删除项目以及操纵现有项目。在许多情况下,客户可能希望对该集合进行批量更新,例如添加1000个项目并删除500个不同的项目。感觉客户端应该能够在与服务器的单个事务中完成此任务,而不是需要1000个单独的POST请求和500个DELETE。
是否有人有关于实现此目标的最佳做法或惯例的信息?
我目前的想法是,应该能够PUT一个代表集合URI更改的对象,但这似乎与HTTP 1.1 RFC不一致,后者似乎建议在PUT请求中发送的数据应独立于数据包的解释。 URI中已经存在的数据。这意味着客户端将必须一次性发送对集合的新状态的完整描述,该描述可能远远大于更改,甚至超过客户端发出请求时所知道的范围。
显然,如果有必要,我很乐意偏离RFC,但如果存在这样的约定,则宁愿以常规方式进行操作。