RESTful частичные обновления для ресурсов с элементами только для чтения? - PullRequest
1 голос
/ 27 февраля 2012

Я разрабатываю RESTful API, который в настоящее время имеет ресурсы, включающие некоторые элементы, которые могут обновляться клиентами, а другие - нет. Как пример:

{
    id : "1234",
    firstName  : "George",
    lastName   : "Burdell",

    blogPosts : { href : "http://server.com/user/1234/blogposts"}
}

Клиент API может PUT новый ресурс или PATCH существующего ресурса, но в примере они могут записывать только в firstName и lastName. id и blogPosts генерируются сервером и не могут быть изменены клиентом.

Каков рекомендуемый способ обработки попытки записи в недоступное для записи поле? Вернуть 401 и игнорировать весь документ обновления? Является ли 401 подходящим ответом?

Является ли наличие ресурса, который включает в себя как доступные для записи, так и не доступные для записи элементы, плохой идеей? (Я новичок в этом, но, похоже, это часто бывает неизбежно, особенно в случаях, подобных примеру, связанному со связанными ресурсами).

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Возвращает 403 и не обновляет ресурс.

403 Запрещено

Сервер понял запрос, но отказывается его выполнить.Авторизация не поможет и запрос НЕ ДОЛЖЕН повторяться.Если метод запроса не был HEAD и сервер желает сообщить, почему запрос не был выполнен, он ДОЛЖЕН описать причину отказа в объекте.Если сервер не желает предоставлять эту информацию клиенту, вместо него можно использовать код состояния 404 (не найден).

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

0 голосов
/ 27 февраля 2012

Если вы не хотите, чтобы у них была возможность записи в объект JSON, я бы не стал делать это доступным для них, и, таким образом, выдает ошибку, если они попытались написать в него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...