gpt4 book ai didi

api - 我应该期望 HTTP DELETE 位于哪个 URI?

转载 作者:行者123 更新时间:2023-12-01 11:55:23 26 4
gpt4 key购买 nike

对于一直困扰我的事情,这更像是一个概念完整性问题。

HTTP 的 DELETE 方法应该是幂等的,而 REST 的 URI 应该实际表示事物。但是好像只是在reverse方向定义的:每个资源必须有一个URI,但是一个给定的URI似乎并不需要一个资源。更仁慈一点,我猜 URI 可以定义为指向空/空资源。

这似乎真正相关的唯一时间是在 DELETE 请求中。放在哪里最好? example.com/users/ 的内容标识要删除的资源,还是 example.com/users/USERNAME 更好?

DELETE 中的内容在 HTTP 和 REST 中似乎没问题。 (概念上:根据其他 SO 问题,各种框架会在您处理 DELETE 请求之前悄悄地删除内容。)

所以这是我的想法:每个示例似乎都使用后一种方案——您要删除 URI 中的资源,而不是从其父集合 URI——但资源在成功删除后应该停止存在。在这种情况下,URI 应该大声失败,恕我直言。但这会否定 DELETE 的幂等性,让我认为 DELETE 应该对集合进行操作,内容指定要删除的实际资源。

显然,每个人都只是做我不喜欢的事情,为了我的用户的理智,我可能应该同意它,但是是否有任何地方清楚地说明了这一点,或者我遗漏了明显的事情让我错了?

最佳答案

根据 HTTP 标准“DELETE 方法请求源服务器删除由 Request-URI 标识的资源。” - 没有任何类型的请求主体。

In which case the URI should fail loudly, imho. But that would negate the idempotence of DELETE

只需返回 404。幂等性的要点是,两次提交相同的 DELETE 请求不会导致服务器状态最终与提交一次有任何不同。失败不会导致问题(除非服务器关闭或其他原因)

关于api - 我应该期望 HTTP DELETE 位于哪个 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com