Должен ли я использовать POST-запрос к / resources / или PUT-запрос к / resources / id / для создания нового объекта? - PullRequest
4 голосов
/ 01 января 2012

Какой RESTful способ создать объект? Должен ли я использовать POST для / resources / URI и вернуть URI вновь созданному ресурсу в ответе или мне следует использовать PUT для / resources / id / URI? Запрос GET для / resources / id / обязательно вернет 404, но должен ли PUT также возвращать 404? Следует ли использовать оба метода для создания нового объекта?

1 Ответ

9 голосов
/ 01 января 2012

Как правило, вы будете использовать один или оба в зависимости от того, хотите ли вы, чтобы клиент (и, следовательно, пользователь) определял URI или нет. Если клиент устанавливает POST resources/, сервер получает возможность определить URI для ресурса. Если клиент ставит значение resources/{id}/, то клиент определяет URI для ресурса.

Единственное исключение - если создание включает ссылки, состояния и другие элементы, которые затем не считаются должным образом частью ресурса - вы, как правило, не можете помещать эти дополнительные «аргументы конструктора», если они есть, поскольку они не являются частью ресурса государство. Вместо этого вы должны POST в этом случае.

Даже если вы используете POST для создания, вы все равно можете выставить PUT для обновлений. Это зависит от ресурса.

Если вы не разрешаете создание PUT, тогда да, вы должны вернуть 404 в этой ситуации.

...