Итак, будет ли правильный выбор использовать подобный шаблон ресурса, или я ошибаюсь?
«Это зависит от ситуации».
Правописание URI не имеет значения для машин; /0d905ca3-c848-4bc5-bc4a-658fbec88ab5
- идеальный путь для использования. Человеческое написание - это просто удобство для людей - написание «RESTful» вроде /votes
не больше REST, чем использование UUID, но когда операторы просматривают журналы, пытаясь идентифицировать шаблон трафика c, они будут вероятно, будет лучше второй вариант.
POST в качестве токена метода вполне подойдет. См. Это нормально использовать POST (Филдинг, 2009 г.).
PUT
, однако, звучит не совсем так, как вы хотите. Семантически PUT означает «заменить текущее представление ресурса полезными данными текущего сообщения». Это метод удаленного создания , который в сочетании с GET
дает вам хранилище документов:
PUT
- это метод, который вы использовали бы в Интернете для редактирования своей домашней страницы. , например.
GET /home-page
(make changes locally)
PUT /home-page
И тело этого запроса PUT является предполагаемой новой версией домашней страницы.
В вашем случае:
PUT /votes/{voteId}?restaurantId=10
это Предполагается, что полезная нагрузка будет выглядеть так, как если бы вы сделали это
GET /votes/{voteId}?restaurantId=10
Это должно быть полное представление ресурса.
Это не означает, что это должно быть полное представление сущности ; ресурсы - это обобщение документа; a просмотрите данные вашей организации. Удаленное создание отправляет новое представление представления, и задача сервера - внести соответствующие изменения в объект. См. Jim Webber 2011 .
Если вы не хотите делать обновления таким образом, это отлично - но тогда вам не следует использовать PUT
, поскольку это лишает смысла иметь общее семанти c со всеми другими ресурсами (вы должны использовать POST).