Я не могу найти образцы на пути использования патча JSON для обновления коллекции. Фактически, я хочу использовать метод PATCH
в ресурсе REST коллекции для обновления связанной коллекции, не отправляя снова всю коллекцию. Интересно, может ли JSON Patch соответствовать описанию операций: в основном добавлять элементы или удалять элементы. Элементы сложны, что означает, что они не являются примитивными элементами.Как обновить коллекцию с помощью json-патча
Ниже приведены дополнительные сведения. Давайте возьмем образец ресурса contacts
:
GET /contacts
[
{
"id": "1",
"lastName": "Last name 1",
"firstName": "First name 1"
},
{
"id": "2",
"lastName": "Last name 2",
"firstName": "First name 2"
},
{
"id": "3",
"lastName": "Last name 3",
"firstName": "First name 3"
},
(...)
]
Вот PATCH
запрос, который я хотел бы использовать, но я не уверен, что это JSON Patch совместимый:
PATCH /contacts
[
{
"op": "add", "value": {
"firstName": "my first name",
"lastName": "my last name"
}
},
{
"op": "remove", "path": "id=='1'"
}
]
Моя главная проблема в том, как для идентификации элемента для удаления в соответствии с его полем id
. Есть ли для этого выделенное выражение? Я подумал о чем-то вроде: id=='1'
.
Последний вопрос: есть ли контент для ответа, предназначенный для JSON Patch?
Большое спасибо за помощь за помощь! Thierry
Любые намеки о патче ответ? –
В стандарте не сказано. Предполагается, что это атомная транзакция, поэтому технически информация не должна возвращаться, поскольку клиент может предположить, что все изменилось или ничего не изменилось. Обычно вы хотите, по крайней мере, включать сообщения об ошибках для каждого op, если произошли ошибки. – mahemoff
Фактически, я вижу две вещи, которые могут быть возвращены в ответе ;-): идентификатор созданного элемента (в случае автогенерации pk) и ошибки проверки. У нас есть бэкэнд noSQL за API, поэтому у нас нет транзакций ... –