如何在不实际执行的情况下模拟 HTTP DELETE 操作的后果

How to model the consequences of HTTP DELETE action without actually doing it

对于 HTTP API 设计,我需要让用户能够获取对资源的 HTTP DELETE 调用可能触发的更改列表。也就是说,如果资源是一对多关系中的父资源,我需要用子列表回复。 这背后的想法是,客户可以在实际进行破坏性更改之前使用此信息来确认它们。

所以如果实际操作很简单 HTTP DELETE /resources/uuid

HTTP DELETE /resources/uuid?simulate=true 可以接受,在这种情况下什么是合适的 http 状态代码?

我很想知道分两步删除这种情况的最佳方法是什么。

我认为这种方法没有问题。您可以考虑的一件事是,当您有多个需要 "simulated" 的 API 时,可能值得考虑一种通用方法。

你可能有类似的东西

DELETE /dryRun/resources/uuid

DELETE /resources/uuid/dryRun

将其作为路径参数而不是查询参数的优点是关注点分离。使用这种方法,您将避免在代码中包含 if-else