Причина, по которой PUT должен быть идемпотентным, заключается в том, что клиенты знают, что если что-то пойдет не так на сетевом уровне (например, случайное отключение беспроводной сети) или если пользователь перемещается по сети, клиент может просто повторить PUT, не спрашивая пользователь. Это идемпотент; не имеет значения, сколько раз это будет сделано (ну, если это будет сделано хотя бы один раз). Это означает, что PUT соответствует созданию определенного ресурса или настройке свойств определенного ресурса.
Если вы делаете PUT на /Api/Student/1234
, вы работаете с этой конкретной записью студента. Если вы делаете PUT на /Api/Student
, то вы работаете с всеми записями студентов, массовым обновлением. Да, теоретически вы также можете разрешить выбранное обновление таким образом, оно не имеет хорошего архитектурного запаха. Кодировать наименование ресурса в пути. (И если вы хотите создать новый ресурс, имя которого вы еще не знаете, используйте POST, конечно.)