Put - post при написанні api
POST: Replace the addressed member of the collection, or if it does not exist, create it.
Новомосковскл, немає кінцевої однозначності. Що скажете з приводу поділу POST на POST / PUT / DELETE?
Якщо розділяти - то можна запити подавати на один URI різними методами, бо вказівка операції в URI буде тавтологією. Але тоді потрібно вдивлятися в метод постійно, а в разі одного методу і різних URI таких питань не виникає.
Приблизно так:
PUT однозначно апдейт запис і робиться на / some / uri / collection / document_id (рівнозначно UPDATE в SQL)
POST на колекцію (/ some / uri / collection) створює запис (рівнозначний INSERT).
POST на документ (/ some / uri / collection / document_id) апдейт документ, якщо він є, створює - якщо немає. (Рівнозначно INSERT ... ON DUPLICATE KEY UPDATE)
POST запит на увазі створення запису, результатом її повинен бути пусте тіло відповіді і заголовок location c uri нового об'єкта.
PUT - підміна записів. Тобіш оновити одне якесь поле у записи не можна. Знову ж таки, якщо ви замінили об'єкт - то ви вже маєте на руках всі необхідні дані, тому відповіддю може бути знову ж заголовок location.
є ще метод PATCH, який дозволяє саме оновлювати запис (конкретне поле або декілька з них). Тут теж мається на увазі повернення тільки URI. По суті будь-які дані вам може повернути тільки GET запит.
І є ще купа проблем зі статус кодами, мовляв 200 це добре тільки для GET, так як воно має тіло відповіді. А для більшості інших потрібен 204, який говорить що все добре, але є тільки заголовки.
АЛЕ ... це якщо по феншую і саме RESTFull, причому це далеко не все. Зазвичай далі GET / POST / PUT / DELETE ніхто не йде ... PATCH взагалі рідко використовують, а ось LINK взагалі ніразу не бачив що б на реальних проектах застосовували ...