Весь ключ полягає в тому, чи змінюєте ви безвідмовну зміну чи ні. Тобто, якщо вчинити дії над повідомленням двічі, це призведе до того, що там буде "те саме", як якщо б це було зроблено лише один раз, ви отримали ідентичну зміну, і її слід відобразити на PUT. Якщо ні, він відображається в POST. Якщо ви ніколи не дозволяєте клієнту синтезувати URL-адреси, PUT досить близький до оновлення, і POST може обробляти Створити просто чудово, але це, звичайно, не єдиний спосіб зробити це; якщо клієнт знає, що хоче створити, /foo/abc
і знає, який вміст туди розмістити, він працює чудово як PUT.
Канонічний опис пошти - це коли ви зобов’язуєтесь щось придбати: це дія, яку ніхто не хоче повторити, не знаючи про це. Навпаки, встановлення відправки для замовлення заздалегідь можна зробити за допомогою PUT просто чудово: не має значення, якщо вам кажуть надіслати 6 Anywhere Dr, Nowhereville
раз, два чи сто разів: це все одно та сама адреса. Це означає, що це оновлення? Можливо ... Все залежить від того, як ви хочете написати бек-енд. (Зверніть увагу, що результати можуть бути не ідентичними: ви можете повідомити про це користувачеві, коли він востаннє робив PUT як частину представлення ресурсу, що забезпечило б, щоб повторні PUT не викликали однаковий результат, але результат все одно бути "однаковим" у функціональному сенсі.)