Я создаю простой API для менеджера закладок, где URL-адрес записи должен храниться только один раз. Запись 001 с www.example.com уже существует рядом с записью 002 с www.stuff.com.
Если я обновляю запись 002 с помощью URL-адреса www.example.com, я должен игнорировать полный запрос и отправить сообщение об ошибке или лучше обновить все допустимые части и просто отправить сообщение об ошибке, в котором говорится, что url/bookmark уже существует?RESTful API - игнорировать недопустимый запрос PUT?
ответ
С PUT, ожидание состоит в том, что вся операция будет успешно или неудачно:
положенной запросы метода, что состояние целевого ресурса быть создан или заменяется на состояние, определяемое представлением заключенный в полезную нагрузку сообщения запроса. Успешное PUT данного представлений предполагает, что последующее GET на том же целевом ресурсе приведет к тому, что эквивалентное представление будет , отправленное в ответ 200 (OK).
https://tools.ietf.org/html/rfc7231#section-4.3.4
Вы должны отправить сообщение об ошибке в случае недопустимой PUT (так как URL уже существует и не может быть в двух записей одновременно) и не применять какой-либо из других обновлений.
Для частичных обновлений, которые вы могли бы рассмотреть PATCH, но в данном случае я не думаю, что вы бы это направление, так как:
Если весь патч документ не может быть успешно применен, то ОБЯЗАТЕЛЬНО сервера НЕ применяйте какие-либо из изменений.
- 1. Как обрабатывать запросы PUT в RESTful API?
- 2. HTTP-запрос PUT-файл (изображение) в Swift RESTful API (Grails)
- 3. PUT запрос не работает, Flask-RESTful, SQLAlchemy
- 4. RESTful API PUT/PATCH to flip boolean
- 5. Kohana Restful Put
- 6. RESTful API: как моделировать запрос нового пароля?
- 7. Restful WebApi V2 Put Issue
- 8. Запрос PUT curl возвращает плохой URI (флакон-RESTful)
- 9. RESTful api - перекрестный домен запрос на отправку
- 10. Ember-Data: Restful Put
- 11. Разбор RESTful PUT
- 12. Backbone.js & Flask RESTful API (только запрос OPTIONS)
- 13. JQuery RestFul Положить запрос
- 14. Yii2 RESTful API пост() из PUT не возвращающие параметры
- 15. RESTful способ PUT нескольких полей
- 16. Rails Restful actions Index Put
- 17. RESTful service: PUT или DELETE
- 18. Проблемы с POST/PUT Json RESTful запрос Grails
- 19. Flask Restful Список обновлений PUT с объектом
- 20. RESTful API и обработка внешних ключей для POST и PUT
- 21. Restful API: Имеет ли смысл отправлять PUT без закрытого объекта?
- 22. Пример запроса Swift и Put для API RESTful
- 23. Как очистить данные POST/PUT до RESTful API
- 24. Статус 404 Не найдено: yii2 RESTful API, PUT метод
- 25. Не удается обновить массив mongo, используя RESTful api put
- 26. pylons Методы API RESTful (get, put, post и detete)
- 27. PUT HTTP-запрос в HTTP API Wordpress
- 28. Ajax PUT запрос в Web Api
- 29. Rails JSON API, аутентификация токена Запрос PUT
- 30. Запрос PUT в API редизайна, NodeJS, MongoDB
Спасибо за это приятные выдержки :) – user3147268