Общий эндпоинт для получения новостной ленты

Сделайте единый контракт GET /feed с cursor и limit, а ответ — списком типизированных элементов и next_cursor. Различия платформ не должны менять смысл данных.

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

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

Сделайте единый контракт GET /feed с cursor и limit, а ответ — списком типизированных элементов и next_cursor. Различия платформ не должны менять смысл данных.

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

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

Условие

Необходимо построить кроссплатформенный API, который будет обслуживать запросы как от мобильного клиента, так и от веб‑приложения, выдавая им ленту с контентом. Требуется спроектировать формат входного запроса и структуру ответа так, чтобы они удовлетворяли требованиям обеих платформ и обеспечивали единый, масштабируемый доступ к ленте.

Ответ

Сделайте единый контракт GET /feed с cursor и limit, а ответ — списком типизированных элементов и next_cursor. Различия платформ не должны менять смысл данных.

Пример запроса: GET /v1/feed?limit=20&cursor=.... Ответ содержит items с id, type, published_at, author, content и media; опциональные возможности клиента можно согласовать отдельно.

Cursor должен привязываться к устойчивой сортировке с уникальным tie-breaker, фильтрам и при необходимости версии выдачи. Сервер ограничивает limit и проверяет доступ к каждой записи. Для персональной ленты кеш разделяют по пользователю и контексту; публичную можно кешировать отдельно. Платформенные компоненты интерфейса собирает клиент, а несовместимые изменения API версионируют.

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

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

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

Подробнее