Как мне удалить подресурс с помощью restful PATCH
Когда мы используем PATCH, мы частично обновляем ресурс. Что лучше, если я хочу удалить часть ресурса?
Например: у нас есть ресурс Person:
Person:
{
id: 3,
name: 'test',
companyId: 1,
}
Допустим, этот человек покидает компанию и не имеет работы, тогда для CompanyId должно быть задано значение null
в БД. Когда я хочу удалить companyId
в Person
через API, я должен установить companyId в полезной нагрузке как null
также?
PATCH: /person/3
Person:
{
id: 3,
companyId: null,
}
Я использовал, чтобы удалить объект, установив его как {}
или удалите массив, установив его как []
, но я не уверен на 100%, что является лучшей практикой для примитивного свойства (например, companyId
в этом случае). Любая идея?
Спасибо
1 ответ
Если посмотреть на RFC 6902 (который определяет стандарт Patch), с точки зрения клиента API можно назвать как
PATCH /person/3
[
{ "op": "remove", "path": "/companyId"}
]
Я думаю, что точная внутренняя реализация (по умолчанию nullable int против 0/-1) зависит от вас.