Каким образом должно работать обновление коллекций по REST?
Здравствуйте.
Необходимо обновить пачку сущностей. На сервер отправляю массив JSON-объектов. Вопрос в следующем:
Что должно приходить в случае, когда одна из записей неверна ? Так как каждый объект обрабатывается циклом, необходимо ли данный цикл прерывать и возвращать Exception, или нужно вместо Exception в массив с ответом запихивать конструкцию вида : {objectId : 123, errors : {'errorField' : 'errorName'}} и дообновить объекты, прошедшие валидацию ?
По хорошему если что-то пошло не так, то падает весь запрос, вся транзакция откатывается и приходится отправлять все заново. Более того, частично обработать коллекцию не выйдет, можно конечно перечислить через запятую айдишки но это не сильно удобно. Все остальное уже выходит за рамки концепции REST и тогда вам в помощь приходит JSON RPC, и тут уж вы сами регламентируете как и что, просто дергать будете POST запрос и все.
Значит сперва валидировать всю пачку, в случае отказа - кидать исключение, в случае прохода валидации - сохранять. Просто приходится работать с большим объемом объектов на фронте (angularJS), после изменений вся пачка отправляется на сервер. До этого была очередь из объектов (взял объект -> отправил -> получил положительный ответ -> взял следующий объект и т.д.), но показалось не очень.