Проще говоря, POST
для создания и PUT
для обновления.Если у вас нет идентификатора для объекта, потому что он еще не создан, вы должны использовать POST
.Если объект существует, и у вас просто нет идентификатора для него, вам придется искать его, используя GET
некоторого вида.
Помните, что идемпотентность .A PUT
(и GET
в этом отношении) идемпотентен.В основном это означает, что вы можете нажимать один и тот же URL-адрес снова и снова, и это не должно иметь значения во 2-й или 3-й раз (при этом данные редактируются один раз, и при повторном вызове это изменение не выполняется).Однако POST
является не идемпотентом.Это означает, что вы нажимаете один и тот же URL 3 или 4 раза подряд, и он будет продолжать изменять данные (создавая все больше и больше объектов).Вот почему браузер предупредит вас, если вы вернетесь к POST
url.