REST API PATCH-更新对象中的特定值

时间:2019-03-10 15:30:04

标签: rest http

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

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

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

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对象,而仅替换smallkey2对象内部的key2值。

如何获得:

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

1 个答案:

答案 0 :(得分:1)

  

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

通常,如果我们使用HTTP Patch将更改传达给服务器

  

这组更改以一种称为“补丁文件”的格式表示,该格式由媒体类型标识。

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

每种方法都有自己的特定语义,用于描述对嵌套键的编辑。