Моя цель - сделать идемпотент/создать REST API, который реализован как глагол PUT.
Идемпотентный RFC гласит:
Идемпотентные методы различаются тем, что запрос может
повторяться автоматически, если сбой связи происходит до того,
клиент сможет прочитать ответ сервера. Например, если
клиент отправляет запрос PUT, а базовое соединение закрывается
до получения ответа, то клиент может установить новое
соединение и повторить идемпотентный запрос. Он знает, что повторение запроса будет иметь тот же предполагаемый эффект, даже если первоначальный
запрос был выполнен успешно, хотя ответ может отличаться.
PUT RFC гласит:
Если у целевого ресурса нет текущего представления, а PUT успешно создает его, то сервер-источник ДОЛЖЕН сообщить
агенту пользователя, отправив ответ 201 (Created). Если целевой
ресурс действительно имеет текущее представление и это представление
успешно изменено в соответствии с состоянием вложенного представления, то исходный сервер ДОЛЖЕН отправить либо 200 (ОК), либо 204 (Нет содержимого). ответ, указывающий на успешное выполнение запроса
.
Предполагая, что /create сохраняет созданный ресурс в БД, должен ли он возвращать 201 при первом создании и 200 при повторной попытке /create? Следует ли повторить /создать, чтобы снова и снова сохранять один и тот же ресурс в БД, чтобы соответствовать PUT RFC?
PUT /
иPUT /:id
это 2 разных ресурса - person Ayush Gupta   schedule 17.12.2017