Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как можно организовать загрузку большого словаря в память приложения и обработку запросов к нему через один endpoint по ключу?
Загрузите словарь при старте приложения (например, в startup событии FastAPI) и сохраните в памяти как глобальную переменную или в объекте приложения. Для доступа создайте endpoint, который будет искать значение по ключу. Можно использовать кэширование для ускорения.
Как реализовать API с одним endpoint, который внутри инициирует цепочку сервисных вызовов?
Один endpoint обычно выступает в роли оркестратора. Он принимает запрос, валидирует данные и запускает цепочку вызовов других сервисов. Часть шагов может быть синхронной, часть — асинхронной. Важно контролировать ошибки, таймауты и откаты. Часто используют Saga-подход или фоновые задачи.
Какие риски возникают при проектировании универсальных endpoint’ов?
Универсальные endpoint’ы выглядят гибко, но быстро теряют прозрачность. Они усложняют валидацию, документацию и тестирование. Поведение становится зависимым от множества флагов и параметров. Ошибки труднее диагностировать, а изменения чаще становятся breaking. В итоге поддержка такого API дороже, чем у специализированных endpoint’ов.
Какие проблемы возникают, если endpoint объявлен async, а вся внутренняя логика остаётся синхронной?
Если endpoint объявлен async, но внутри используются синхронные операции, сервер блокирует event loop. В результате приложение теряет преимущества асинхронности и плохо масштабируется. При высокой нагрузке такие эндпоинты начинают резко деградировать по времени ответа. Это частая ошибка при работе с БД или внешними сервисами.
Какие риски возникают при выполнении нескольких побочных операций (БД, внешний сервис, очередь) в одном endpoint?
Если в одном endpoint выполняется несколько побочных операций, появляется риск частичного выполнения. Например, данные в БД сохранились, а сообщение в очередь не отправилось. Это приводит к неконсистентному состоянию системы. Такие ошибки сложно обнаруживать и исправлять.
Зачем проектировать и документировать API-контракт до реализации endpoint’ов?
Рейтинг:
5
Сложность:
6
Проектирование API-контракта заранее позволяет согласовать формат данных и поведение системы до написания кода. Это снижает количество переделок и конфликтов между командами. Клиенты могут начинать разработку параллельно с backend. В итоге ускоряется разработка и повышается стабильность API.
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
7
Рейтинг:
4
Сложность:
7
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
7