Согласно спецификации HTTP/1.1 Spec:
Метод
POSTиспользуется для запроса, чтобы исходный сервер принял объект, заключенный в запросе, в качестве нового подчиненного ресурса, идентифицированногоRequest-URIвRequest-Line
Другими словами, POST используется для создания.
Метод
PUTзапрашивает, чтобы закрытый объект хранился в поставляемомRequest-URI. ЕслиRequest-URIотносится к уже существующему ресурсу, закрытое сущность СЛЕДУЕТ считаться измененной версией той, которая находится на сервере происхождения. ЕслиRequest-URIне указывает на существующий ресурс и что URI может быть определен как новый ресурс запрашивающим пользовательским агентом, исходный сервер может создать ресурс с этим URI. "
То есть PUT используется для создания или обновления.
Итак, какой из них следует использовать для создания ресурса? Или нужно поддерживать оба?


