Я б запропонував повернути лише те, що потрібно + невелике уточнення.
Наприклад, залежно від способу використання вашого API, ви можете включити копію об'єкта, яка існує після збереження.
Отже, POST {key: 123} може повернутися {key: 123, foo: 'bar'}.
Основна ідея: краще повернути об’єкт, а потім знову за ним запитати.
Однак, вашим споживачам API не потрібен об'єкт, повертати його не потрібно.
Зазвичай я повертаюсь {success: true} або щось подібне, коли для POST PUT і PATCH немає необхідного об'єкта, оскільки це полегшує кінець прийому. Однак, краще 99% часу повернути збережене представлення об'єкта; рідко вони їм не знадобляться, і "дешевше" відправити все це за один запит, а потім за два.
Щоб бути конкретним, в лабораторії ідеально знайти все, що працює лише з кодами статусу, в реальному світі набагато краще повернути деякі дані, навіть якщо вони є зайвими, так що споживачі API можуть легко зрозуміти, що намагаються сказати.
Повернення 200 {success: true} дозволяє людям писати код обома способами:
if response.code == 200
do stuff
end
і
if response.body.success
do stuff
end
до того ж це не так важко зробити на вашому боці.
Нарешті, (вибачте за структуру відповідей poos), надаючи загальнодоступному JSON api, що ви відмовились від великого контролю над тим, як це буде використовуватися. Деякі клієнти можуть реагувати по-різному на різні органи (або їх відсутні) або коди статусу.