当资源收到 DELETE 请求时,相关资源会发生什么情况?

What happens to related resources when a resource receives a DELETE request?

假设一个 API 具有用于端点 /authors/:id 的方法 DELETE,它还会删除该作者的所有帖子。

我了解,当作者从数据库中删除时,所有 GET/authors/:id/posts 的请求都应以 410 GONE 响应,表明该资源不再可用。

API应该如何理解资源曾经存在但不再存在?毕竟,查询 SELECT * FROM posts WHERE author_id = id; 是空的。

我想到的唯一“解决方案”是删除帖子,而是检查数据库中是否存在作者并采取相应措施。

在大多数业务应用程序中,您真的不想在正常操作流程中删除记录,尤其是当您随后必须级联这些删除时。

例如,在财务应用程序中,当客户停止与您开展业务时,您不想删除该客户记录和过去的所有销售 - 您想要设置一个标志说“此客户不再活跃。

这通常被称为 soft delete.

您的 REST API 可以解释已删除的状态以发出正确的状态代码(GONE,而不是 NOT FOUND