Ответ 1
Метод PUT запрашивает, чтобы закрытый объект был сохранен в поставляемом Request-URI.
Вы хотите PUT
ресурс к тому же URI, на который вы намерены его GET
.
Я читал некоторые документы о правильном использовании URI, используя службы отдыха, и я наткнулся на пример для базовых запросов GET.. DELETE.
Пример uri:
Получить всех пользователей
GET http://mydomain.org/api/users
Получить конкретный пользователь
GET http://mydomain.org/api/users/1
Обновить пользователя
PUT http://mydomain.org/api/users/1
УДАЛИТЬ пользователя
DELETE http://mydomain.org/api/users/1
Пользовательский ресурс будет либо JSON, либо XML в форме:
{
Id: 1,
FirstName: 'John',
LastName: 'Doe'
}
Мой вопрос в том, что. Чтобы поддерживать принципы REST, требуется ли включать идентификатор ресурса в URI для запросов PUT?
Метод PUT запрашивает, чтобы закрытый объект был сохранен в поставляемом Request-URI.
Вы хотите PUT
ресурс к тому же URI, на который вы намерены его GET
.
Я собирался задать аналогичный вопрос, но я думаю, что нашел ответ. Я не уверен, что это принципы REST, но вот почему было бы плохо не включать ID в URI.
Поэтому скажите, что ваш PUT
похож:
PUT http://mydomain.org/api/users
И тогда вам случается обновлять несколько пользователей с другим идентификатором, но тот же URI, потому что в вашем URI нет идентификатора. Затем важно знать, что PUT - это идемпотентный http-глагол. Это означает, что вызов один раз должен иметь тот же эффект, что и называть его много раз. Поэтому некоторые промежуточные node в сети, просто следуя за тем, что вы PUT несколько раз, могут игнорировать все, но один из ваших запросов, потому что они имеют один и тот же URI. Наконец, это определенно не то, что вы хотите, потому что целью было обновление нескольких пользователей не только.