Как мне удалить подресурс с помощью 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) зависит от вас.

Другие вопросы по тегам