Минимальный Express-сервис для получения трекинг-данных CDEK по номеру отправления.
Сервис принимает трек-номер, валидирует его, открывает трекинг-страницу CDEK для получения необходимых cookies и затем запрашивает JSON из публичного endpoint CDEK. В ответ клиент получает данные без дополнительного преобразования.
- Маршрут
GET /get-track-data/:track - Проверка входного трек-номера
- Endpoint
GET /healthдля healthcheck - Обработка
404и ошибок upstream-сервиса - Локальный запуск и запуск через Docker
- Node.js 20+
- Express 5
- Axios
- Docker / Docker Compose
.
├── src/
│ ├── app.js
│ ├── errors/
│ ├── handlers/
│ └── services/
├── Dockerfile
├── Dockerfile.dev
├── docker-compose.yml
├── docker-compose.dev.yml
└── package.json
Проверка доступности сервиса.
Пример ответа:
{
"ok": true
}Возвращает данные по трек-номеру из CDEK.
Пример запроса:
curl http://localhost:3000/get-track-data/10244207758Если входные данные некорректны, сервис возвращает JSON-ошибку в формате:
{
"ok": false,
"error": "validation_error",
"message": "Описание ошибки"
}Если внешний сервис CDEK недоступен или вернул ошибку, сервис возвращает ошибку категории upstream_error.
Требования:
- Node.js 20 или выше
- npm
Установка зависимостей:
npm installЗапуск в dev-режиме:
npm run devЗапуск в обычном режиме:
npm startПо умолчанию сервис доступен на http://localhost:3000.
PORT- порт приложения, по умолчанию3000
Production-сборка:
docker compose up --buildDev-сборка с пробросом ./src в контейнер:
docker compose -f docker-compose.dev.yml up --buildПосле запуска сервис будет доступен на порту ${PORT:-3000} хоста.