мы используем REST API для связи между нашим клиентом (UI) и сервером. Мы реализовали постраничную GET-тинг ресурсов одного типа, например:
GET http://../cars?page-size=10,start-index=3
вернет вам максимум 10 автомобилей, начиная с автомобиля 21 (т.е. 3-я страница из 10 автомобилей).
Мы хотим добавить возможность возвращать сущности со связанными сущностями, в которых может быть много связанных сущностей (возможно, десятки или сотни) одной основной сущности. В настоящее время это выполняется с помощью 2 запросов: например, сначала GET для автомобилей, затем GET для дверей с использованием ранее выбранных идентификаторов автомобилей в качестве параметра:
GET http://../doors?car-ids=1,2,5,7,...
Однако, чтобы минимизировать количество запросов, мы хотели бы использовать 1 запрос для возврата необходимой информации. Возникают следующие вопросы:
- Как пейджинг должен быть интегрирован с такой функциональностью? Должно ли количество связанных объектов (дверей) быть ограничено размером страницы основного объекта (автомобиля)? Может быть, нам следует разделить размер страницы основного объекта и связанных объектов (например, 10 автомобилей, максимум 2 двери для каждого автомобиля)?
- Как мы можем обеспечить масштабируемость решения на стороне сервера с точки зрения использования памяти? В настоящее время мы используем JAXB для сериализации объектов в XML. Должны ли мы рассмотреть возможность использования потоковых методов XML (STAX) для предотвращения загрузки всех объектов в память?
Большое спасибо.