Я бы предложил вернуть только то, что нужно + небольшое уточнение.
Например, в зависимости от того, как будет использоваться ваш 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), предоставляя общедоступный API-интерфейс JSON, вы отказываетесь от большого контроля над тем, как он будет использоваться. Некоторые клиенты могут по-разному реагировать на разные органы (или их отсутствие) или коды состояния.