рассмотрим следующий http-запрос:
GET /defects?group-by=priority
Я бы хотел, чтобы возвращаемый набор (поток) дефектов был сгруппирован по приоритету. возвращаемый фид состоит из дефектов (ресурсов) и групповой информации.
Я думал о чем-то, что вернет названия групп и подсчитает их перед возвратом коллекции, например:
<content>
<Group val="High" count="567"/>
<Group val="Medium" count="437"/>
<Group val="Low" count="19"/>
<Defect ,,,,>
<Defect ,,,,>
<Defect ,,,,>
</content>
Проблема с таким представлением состоит в том, что запрашиваемый ресурс (URL) является дефектом, поэтому клиент ожидает сбора дефектов, а не элемента Group.
Полагаю, одним из вариантов решения этой проблемы было бы определение отдельного ресурса групп для дефектов, т. Е .:
defects/groups?group1=priority
, который возвращает коллекцию групп и их количество, а затем клиент может запросить ресурс дефектов для самих данных. Но этот дизайн громоздок и требует дополнительных циклов, не говоря уже о возможных проблемах согласованности, когда дефекты были добавлены \ удалены между вызовом ресурса группы и ресурса дефектов.
Итог, как можно вернуть коллекцию элементов, сгруппированных по атрибуту?
РЕДАКТИРОВАТЬ Сначала я подумал, что эта проблема должна решаться стандартом публикации ATOM. Но даже если ATOM решил эту проблему, мне все равно нужно поддерживать другие представления (XML, JSON), поэтому я ищу шаблон, более присущий подходу RESTful.