我有一组项目,其中一些可能会或可能不会被删除,具体取决于某些先决条件。如果用户想要删除资源 ( DELETE /collection/1
) 并且该资源存在外部依赖关系,则服务器将返回错误。但是如果用户想要删除整个集合 ( DELETE /collection
) 会发生什么?
应该删除所有可以删除的资源并服务器返回 2xx,还是服务器应该保留所有内容并返回 4xx?哪个是预期的行为?
最佳答案
作为 REST API 使用者,我希望操作是原子的,并且可能会返回 409 Conflict
如果其中一个删除失败,则提供详细信息。另外,正如@jbarrueta 指出的那样,DELETE 方法在理论上是幂等的。
现在,如果不可删除的资源在您的用例中是正常事件并且经常发生,您可能希望稍微偏离常规,删除所有可以删除的内容并返回类似 206 Partial Content
的内容。 (虽然不知道这对 DELETE 是否合法)以及有关未删除资源的详细信息。
但是,如果您需要很好地管理错误情况,最好发送单独的 DELETE 命令。
关于rest - DELETE/collection 某些项目不能删除怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30249690/