2013-10-14 1 views
1

Для простого примера я буду использовать шины и автомобили. Я намерен выполнить PUT, чтобы увеличить цену шины. Пользовательский интерфейс также содержит автомобили, которые используют обновляемые шины, поэтому для них требуется обновление цены.Использование RESTFUL PUT, как следует обновлять (или информировать) родительские/дочерние объекты?

Уместно ли исходное требование PUT содержать оценку автомобиля в его ответе? Если нет, как это обычно решается?

ответ

1

PUT A обновить /tire цены должны абсолютно не возвратных подробностей того, как он обновил другой ресурс вроде /car. Это позволит объединить оба объекта и сделать ваши представления ресурсов чрезмерно сложными. Это также сделало бы «атомные» обновления отдельных ресурсов сложными для клиентов.

Ответ PUT должен только сообщать вам, удалось ли обновить ресурс /tire и, возможно, предоставить новое представление шины в контенте ответа. Как только звонок PUT вернулся, клиент (ваш пользовательский интерфейс) может затем GET/car еще раз, и он увидит новую цену для всего автомобиля, которая учитывает стоимость новой шины.

+0

Я думал, что это был, возможно, ответ, на который большинство согласилось бы. Итак, несколько поездок на сервер? И, разве это не означает, что все отношения должны быть известны и на интерфейсе (при условии, что логика в противном случае задана серверу)? В противном случае, как бы вы узнали, какие автомобили должны ПОЛУЧИТЬ? Благодаря! – scoots

+0

Пользовательский интерфейс должен понимать отношения ресурсов и отвечать за знание того, какие вещи нужно повторно установить после внесения обновления. REST не означает, что клиенты становятся автоматическими, это просто помогает создать чистое и гибкое взаимодействие между клиентом и сервером. –

+0

С другой стороны, если вы используете формат конверта, который обеспечивает данные с боковой загрузкой (например, один, потребляемый данными ember-data), то вы можете отправить: оптимизация количества поездок - это именно то, для чего загружены боковые данные. Клиенты (которые знают, где основной ответ) могут игнорировать остальную часть ответа, если захотят. – shaunc