Используйте глагол PUT или PATCH, когда запрос обновляется и удаляется: реальный дизайн
В последнее время я пытался получить правильные HTTP-глаголы, однако у меня есть сомнения относительно использования PUT, PATCH или даже POST для следующего сценария.
Часть переднего плана отправляет следующие данные JSON:
{
name: "Spanish-01",
code: "ESP01",
students: [{
IdStudent: 1,
name: "Peter Parker"
},
{
IdStudent: 2
name: "Ben Reilly",
dirtyRemove: true
}]
}
Внутренний код обновит запись класса (например, имя и код). Однако он также удалит учеников с флагом dirtyRemove и тех, кто живет в другой таблице с именем Student.
Так какое здесь правило? Так как PUT и PATCH в соответствии с w3.org здесь для обновления существующего ресурса. В этом случае серверная часть одновременно обновляется и удаляется?
Должен ли я использовать PUT или PATCH или ни то, ни другое?
ПРИМЕЧАНИЕ: не беспокойтесь о части FE, я уменьшил область видимости, чтобы получить более простой пример
1 ответ
То, как ваши ресурсы реализованы внутри с использованием таблиц, является подробностью реализации. Это не важно
Тем не менее, ваш пример полезной нагрузки не соответствует PUT (чтобы удалить студента, вы бы его пропустили). Это может соответствовать PATCH, если вы правильно маркируете полезную нагрузку типом контента, описывающим, какую семантику вы ожидаете.
Примечание: спецификация HTTP не является документом W3, а версия, которую вы просматриваете, устарела.