REST API PATCH - обновить определенное значение в объекте - PullRequest
0 голосов
/ 10 марта 2019

В файле конфигурации у меня есть несколько переменных.

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

Мне нужно обновить значение smallkey2 через запрос patch (обязательство API).

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 Ответ

1 голос
/ 11 марта 2019

Но как заменить не весь объект key2, а только значение smallkey2 внутри объекта key2.

Обычно, если мы используем HTTP Patch длясообщить об изменении на сервер

Набор изменений представлен в формате, называемом «документ исправления», идентифицируемый типом носителя.

Возможно, вы не хотите использовать application/json в качестве типа мультимедиа, поскольку правила обработки для JSON не являются специфическими для исправления.Лучше было бы использовать application/json-patch+json (описывается RFC 6902 ) или application/merge-patch+json (описывается RFC 7386 ).

Каждый из них имеетих собственная специфическая семантика для описания редактирования вложенного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...