Документация GodelCar API

Статическое описание спецификации эндпоинтов, структуры запросов и ответов

🔒 Безопасность и Авторизация

Для взаимодействия с API используется статический API-токен. Каждый клиент/пользователь имеет свой уникальный ключ.

Токен необходимо передавать в каждом HTTP-запросе в заголовке Authorization с префиксом Bearer .

Формат заголовка:
Authorization: Bearer ваш_статический_токен_из_бд

Спецификация заголовка:

Заголовок (Header) Тип Пример значения Описание
Authorization String Bearer static_token_xyz123 Обязательный заголовок. Идентифицирует пользователя в системе.

Возможные ошибки авторизации (HTTP Статус 401):

Если заголовок отсутствует:
{"status": "error", "description": "Доступ запрещен. Токен отсутствует."}
Если забыли слово "Bearer " или формат строки нарушен:
{"status": "error", "description": "Неверный формат заголовка Authorization."}
Если токена нет в таблице users:
{"status": "error", "description": "Недействительный токен доступа."}
POST /orders
Принимает массив заказов.

Пример Запроса (Body JSON)

{
  "Region": "rt",
  "Orders": [
    {
      "OrderNumber": "ord.15151",
      "Delivery_date": "2026-05-31",
      "Id_location": "loc-001",
      "Latitude": 55.7558,
      "Longitude": 37.6173,
      "Weight": 12.5,
      "Volume": 0.45,
      "Priority": 1
    }
  ]
}

Пример Ответа (JSON 200)

{
  "status": "complete",
  "Orders": [
    {
      "OrderNumber": "1"
    }
  ]
}
POST /locations
Пакетное добавление или обеспечение географических локаций (складов, точек разгрузки) в базу данных.

Пример Запроса (Body JSON)

{
  "Locations": [
    {
      "IdLocation": "loc-001",
      "Name": "Центральный склад",
      "Latitude": 55.7558,
      "Longitude": 37.6173,
      "Description": "Главный хаб",
      "Address": "ул. Ленина, д. 10",
      "Radius": 50,
      "TimeMaxWait": 15
    }
  ]
}

Пример Ответа (JSON 200)

{
  "status": "complete",
  "Locations": [
    {
      "IdLocation": "loc-001"
    }
  ]
}
POST /routes
Импортирует построенные курьерские маршруты.

Пример Запроса (Body JSON)

{
  "Routes": [
    {
      "RouteNumber": "R-101",
      "Date": "2026-05-31",
      "Kuryer": "Иванов И.И.",
      "Imei": "112579991112233",
      "Stops": [
        {
          "IdLocation": "loc-001",
          "PlannedOrder": 1,
          "Orders": [
            {
              "OrderNumber": "ord.15151"
            }
          ]
        }
      ]
    }
  ]
}

Пример Ответа (JSON 200)

{
  "status": "complete"
}