在RESTful样式编程中,我们应该使用HTTP方法作为构建块.虽然哪种方法与经典的CRUD方法相匹配,但我有点困惑.GET/Read和DELETE/Delete非常明显.
但是,PUT/POST有什么区别?它们是否与"创建和更新"一对一匹配?
我想要一些关于设计REST API的建议,它允许客户有效地向集合中添加/删除大量对象.
通过API,客户端需要能够向集合中添加项目并从中删除项目,以及操作现有项目.在许多情况下,客户端将希望对集合进行批量更新,例如添加1000个项目并删除500个不同的项目.感觉客户端应该能够在与服务器的单个事务中执行此操作,而不是需要1000个单独的POST请求和500个DELETE.
有没有人有关于实现这一目标的最佳做法或惯例的任何信息?
我当前的想法是,应该能够将表示对集合URI的更改的对象PUT,但这似乎与HTTP 1.1 RFC不一致,这似乎表明在PUT请求中发送的数据应该独立于数据已经存在于URI中.这意味着客户端必须一次性发送集合的新状态的完整描述,这可能远远大于更改,或者甚至超过客户端在发出请求时所知道的.
显然,如果有必要,我很乐意偏离RFC,但如果存在这样的约定,我宁愿以传统方式这样做.