首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在RESTful API中更改“非幂等”属性?

如何在RESTful API中更改“非幂等”属性?
EN

Stack Overflow用户
提问于 2022-09-21 16:48:00
回答 2查看 27关注 0票数 0

我的API RESTful结构是:

代码语言:javascript
复制
{
    "users":[
        {
            "id": 100,
            "idempotent_property": 10,
            "not_idempotent_property": 10
        }
    ]
    
}

如果只想更改"idempotent_property“的值,则需要:修补程序/用户/100>主体:{"idempotent_property":17}

但是,如果我只想更改"not_idempotent_property“的值,我必须如何做?补丁必须只用于幂等的objet/属性,不是吗?

我认为: POST /users/100/not_幂等属性> body:{"value":15}

EN

回答 2

Stack Overflow用户

发布于 2022-09-21 17:06:08

找到一些文档,这个补丁实际上是做什么的。例如,如果通过10,它可能会在数据库中的某个地方添加10,显然不是幂等的。

解决方案是为该属性调用修补程序一次。或者你读了这个值,然后修补并检查新的值。

问题是,当修补程序返回失败时,您不知道操作是否已经执行。对于幂等属性,您可以再次使用pATCH。

顺便说一下,按定义,补丁不是幂等的。

票数 1
EN

Stack Overflow用户

发布于 2022-09-22 12:16:43

补丁不一定是幂等的,尽管它可以。将此与PUT进行对比;PUT总是幂等的。“幂等”一词意味着任何数量的重复、相同的请求都将使资源处于同一状态。例如,如果自动递增计数器字段是资源的一个组成部分,那么PUT就会自然地覆盖它(因为它覆盖了所有内容),但是对于补丁来说并不一定如此。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH

不太清楚你所说的“幂等宾语/属性”是什么意思。Afaik。操作可以是幂等的,而不是属性。如果您的意思是属性的值在发送响应和根据响应发送新请求之间发生变化,则可以对资源状态进行版本化,并发送例如不修改的If自或如果匹配标头与修补程序请求匹配。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73804382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档