Проектирование Api. Post или Put.
Когда использовать PUT, а когда POST вроде вопрос простой, но и одновременно на него даются разные ответы.
POST:
Используется для создания нового ресурса.
Не является идемпотентным (многократные идентичные запросы могут привести к разным результатам).
Клиент не обязан знать URI создаваемого ресурса заранее.
PUT:
Используется для обновления или создания ресурса.
Идемпотентен (многократные идентичные запросы дают одинаковый результат).
Клиент должен знать URI целевого ресурса заранее.
Такое описание нам дает HTTP rfc и получается:
-
если мы хотим изменить ресурс и знаем его id, то берем идемпотентеный метод PUT. В случае если ресурса с заданным id не существует - будет создан.
PUT /api/tasks/{id}
-
если мы хотим создать новый ресурс, то используем POST.
POST /api/tasks