gpt4 book ai didi

rest - 带有过滤的 HTTP PUT 仍然是幂等的吗?

转载 作者:可可西里 更新时间:2023-11-01 16:22:57 24 4
gpt4 key购买 nike

我正在开发一个 restful 服务,但我不确定我所做的是否是有效的 HTTP。我了解如何使用以下 HTTP 方法:GET、DELETE 和 POST,但是在支持 PUT 时,我不太确定。我知道 PUT 是幂等的,但如果我要使用过滤呢?

为清楚起见,如果您要使用我的服务,您可以:

GET/用户

这将列出所有用户。

GET/User/1

这将获得 ID 为 1 的用户。

POST/用户

这将创建一个新用户。

PUT/User/2

这将创建一个 ID 为 2 的新用户,如果该用户已存在,则将更新该用户。

我开始挣扎的地方是当我想对 PUT 请求实现过滤时。例如,我允许:

PUT/User?FirstName=Andrew&LastName=Schools

这将更新 FirstName 为 Andrew 和 LastName 为 Schools 的资源。此外,您还可以:

PUT/User?status=1

这将使用请求正文中的内容更新状态为 1 的任何用户。

我的问题是,因为我在 PUT 上启用过滤,这仍然是幂等的吗?我最初的想法是不,因为你第一次使用上面的过滤器 PUT 时,这可能会改变相同的过滤器在后续 PUT 中找到的内容,因此,它不是幂等的。如果上面的说法确实是真的,这个特性在 POST 中会更好吗?

最佳答案

我看不出有什么问题。相关的是资源的最终状态。如果您应用 PUT 两次,并且在第二次请求时过滤器识别的资源较少或没有,它是否会更改您确实想要修改的资源的状态?

关于rest - 带有过滤的 HTTP PUT 仍然是幂等的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257578/

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