Как спроектировать API данных для каталога

Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.

Короткий ответ

Что ответить на собеседовании

Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.

Подробный разбор

Ответ с пояснениями

Условие

Клиент показывает список товаров, фильтры и детальную карточку. В списке нужны название, цена и миниатюра, а полное описание — только после открытия. Предложите API и схемы.

Ответ

Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее