Я создаю REST API, который позволяет вставлять (POST, не идемпотент) и обновлять (PUT, идемпотент) запросы на добавление / обновление базы данных для нашего приложения.
Мне интересно, есть ли какие-либо стандарты или лучшие практики относительно того, какие данные мы отправляем обратно клиенту в ответ на операцию POST (вставка). Нам необходимо отправить хотя бы значение идентификатора записи (например, ваша новая запись - запись № 1234).
Должны ли мы ответить с полным объектом? (например, по сути тот же ответ, который они получили бы от запроса "GET / object_type / 1234")
Должны ли мы отвечать только новым значением идентификатора? (например, «{id: 1234}», что означает, что если они хотят получить всю запись, им нужно выполнить дополнительный HTTP-запрос GET, чтобы получить полную запись)
Заголовок перенаправления, указывающий на URL для полного объекта?
Что-то еще целиком?
Ответы:
Хорошо, в интерфейсе REST, следуя HTTP, где это возможно, я бы возвращал 201 и URI в поле заголовка Location вновь созданному ресурсу. Вот что говорится в определениях кода состояния :
Если что-то пошло не так, я бы сказал, что вам следует возвращаться не так,
-1
как говорили другие, а просто с кодом ошибки клиента или сервера (4xx или 5xx). Например, если пользователю не разрешено создавать какой-либо новый ресурс, вы просто возвращаете «401 Unauthorized», не более и не менее.источник