Кейс
API-агрегатор служб доставки
Единый API поверх десятка курьерских служб: расчёт стоимости, создание заказов и трекинг в реальном времени.
- Год
- 2024
- Клиент
- Логистический стартап
- Роль
- Senior Backend Developer
Описание
Агрегатор доставки объединяет более десяти курьерских служб под единым REST API, скрывая различия их форматов, аутентификации и поведения за стабильным контрактом. Интернет-магазины интегрируются один раз и получают доступ ко всем перевозчикам: расчёт стоимости и сроков, создание и отмену заказов, печать накладных и трекинг статусов в реальном времени. Я спроектировал устойчивую к сбоям интеграционную архитектуру, где каждый внешний провайдер обёрнут адаптером с таймаутами, повторными попытками и circuit breaker, чтобы недоступность одной службы не влияла на остальные. Статусы доставки собираются как через вебхуки провайдеров, так и через периодический опрос, нормализуются в единую модель и транслируются клиентам. Кэширование тарифов в Redis и продуманные индексы PostgreSQL обеспечивают быстрый отклик при расчёте стоимости даже при высокой частоте запросов.
Задача
Каждая интеграция с курьерской службой требовала отдельной разработки и поддержки, форматы и статусы различались, а сбой одного провайдера ронял оформление заказов целиком. Клиенты жаловались на медленный расчёт стоимости.
Решение
Спроектировал единый контракт REST API и слой адаптеров с изоляцией отказов через circuit breaker, нормализовал статусы доставки, добавил кэширование тарифов в Redis и асинхронную обработку вебхуков в очередях.
Результаты
Подключение нового магазина сократилось с двух недель до одного дня, расчёт стоимости ускорился в 8 раз за счёт кэша, отказ отдельной службы перестал влиять на оформление заказов, обработано более 2 млн заказов за первый год.