REST API补丁 - 在对象中更新特定值



在配置文件中,我有几个vars。

{
    "key1": "aaa",
    "key2": {"smallkey1": "bbb", "smallkey2": "ccc"} 
}

我需要通过patch请求(API义务)更新smallkey2值。

const updateConfigVar = (finaltarget, newdata) => {
    HTTP.call( 'PATCH', 'https://api.xxx.com/apps/', {
        headers: {
            "Content-Type": "application/json"
        },
        data: {
            [finaltarget]: newdata,
        }
    })
}

如果我致电updateConfigVar('key2', 'ddd'),我得到:

{
    "key1": "aaa",
    "key2": "ddd" 
}

但是如何不是替换所有key2对象,而仅替换key2对象中的smallkey2的值。

所以如何获得:

{
    "key1": "aaa",
    "key2": {"smallkey1": "bbb", "smallkey2": "ddd"} 
}

但是如何不是替换所有键2对象,而仅替换key2对象内的smallKey2的值。

通常,如果我们使用HTTP补丁程序将更改传达给服务器

一组更改以称为"补丁文档"的格式表示。通过媒体类型确定。

您可能不想将application/json用作媒体类型,因为JSON的处理规则并非特定于修补。一个更好的选择是使用application/json-patch+json(由RFC 6902描述)或application/merge-patch+json(由RFC 7386描述)。

这些都有自己的特定语义来描述对嵌套键的编辑。

最新更新