Унифицированный API исторических данных

Javascript и Typescript 2000 UAH
Работа 3 из 9
Задача
Клиенту нужен был бэкенд-сервис для получения исторических OHLCV-данных одновременно с различных криптобирж (полный список — 18 площадок) и приведения их к единому формату для дальнейшего сравнения и анализа цен.

Решение
Разработано REST API на Node.js с единой точкой входа, которая принимает биржи, торговую пару, таймфрейм и период. Сервис параллельно запрашивает данные у каждой указанной биржи, нормализует различные форматы ответов (у каждой биржи свой API, свои лимиты и своя структура свечей) и возвращает единый массив с синхронизированными по timestamp данными.

Ключевые технические решения:
— Адаптерный паттерн для интеграции с биржами — каждая биржа реализована как отдельный модуль с единым интерфейсом, что позволяет добавлять новые площадки без изменения основной логики
— Параллельные запросы к биржам с обработкой таймаутов и retry на случай сбоев отдельных API
— Нормализация таймфреймов и периодов под форматы различных бирж (не все биржи используют одинаковые обозначения интервалов)
— Выравнивание данных по timestamp — если у одной биржи нет свечи за конкретный интервал, это корректно обрабатывается без падения всего ответа

Технический стек
Node.js, Express, TypeScript, axios/node-fetch для запросов к биржевым API

Моя роль
Полный цикл разработки: проектирование архитектуры адаптеров, реализация интеграций с 18 биржами, нормализация данных, обработка ошибок, тестирование.

Результат
Единый API, через который клиент получает сопоставимые исторические данные с любых двух (и более) бирж одним запросом, без необходимости самостоятельно разбираться в специфике каждой биржевой площадки.