Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.
Как спроектировать API данных для каталога
Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Клиент показывает список товаров, фильтры и детальную карточку. В списке нужны название, цена и миниатюра, а полное описание — только после открытия. Предложите API и схемы.
Ответ
Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.
Пример: GET /products?cursor=...&category=... возвращает items и next_cursor; GET /products/{id} — полное описание и варианты. Цена содержит целое число минимальных денежных единиц и валюту. Определите формат ошибок, отсутствие товара и порядок сортировки. Фильтры и лимит страницы валидирует сервер; скрытие полей в UI не заменяет проверку доступа.