Как правило, вы будете использовать один или оба в зависимости от того, хотите ли вы, чтобы клиент (и, следовательно, пользователь) определял URI или нет. Если клиент устанавливает POST resources/
, сервер получает возможность определить URI для ресурса. Если клиент ставит значение resources/{id}/
, то клиент определяет URI для ресурса.
Единственное исключение - если создание включает ссылки, состояния и другие элементы, которые затем не считаются должным образом частью ресурса - вы, как правило, не можете помещать эти дополнительные «аргументы конструктора», если они есть, поскольку они не являются частью ресурса государство. Вместо этого вы должны POST в этом случае.
Даже если вы используете POST для создания, вы все равно можете выставить PUT для обновлений. Это зависит от ресурса.
Если вы не разрешаете создание PUT, тогда да, вы должны вернуть 404 в этой ситуации.