Цепочки задач

Цепочки задач позволяют выполнять несколько HTTP-запросов последовательно, передавая данные между шагами. Идеально для сложных workflow, где результат одного запроса используется в следующем.

Эндпоинты

GET
/chains

Список цепочек задач

POST
/chains

Создание цепочки

GET
/chains/{id}

Получение цепочки с шагами

PATCH
/chains/{id}

Обновление цепочки

DELETE
/chains/{id}

Удаление цепочки

POST
/chains/{id}/run

Ручной запуск цепочки

POST
/chains/{id}/pause

Приостановка цепочки

POST
/chains/{id}/resume

Возобновление цепочки

POST
/chains/{id}/copy

Копирование цепочки

Типы триггеров

manual

Запуск только вручную через API или панель управления.

cron

Регулярный запуск по cron-расписанию. Требует параметр schedule.

delayed

Однократный запуск в заданное время. Требует параметр execute_at.

Создание цепочки

curl -X POST https://api.cronbox.ru/v1/workspaces/{workspace_id}/chains \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Обработка заказа",
    "trigger_type": "manual",
    "stop_on_failure": true,
    "steps": [
      {
        "name": "Получить заказ",
        "url": "https://api.example.com/orders/123",
        "method": "GET",
        "extract_variables": {
          "order_total": "$.total",
          "customer_id": "$.customer.id"
        }
      },
      {
        "name": "Списать средства",
        "url": "https://api.example.com/payments",
        "method": "POST",
        "body": "{\"amount\": \"{{order_total}}\", \"customer_id\": \"{{customer_id}}\"}"
      },
      {
        "name": "Отправить уведомление",
        "url": "https://api.example.com/notify",
        "method": "POST",
        "continue_on_failure": true
      }
    ]
  }'

Шаги цепочки

GET
/chains/{id}/steps

Список шагов

POST
/chains/{id}/steps

Добавление шага

PATCH
/chains/{id}/steps/{step_id}

Обновление шага

DELETE
/chains/{id}/steps/{step_id}

Удаление шага

PUT
/chains/{id}/steps/reorder

Изменение порядка шагов

Параметры шага

ПараметрТипОписание
extract_variablesobjectJSONPath для извлечения переменных из ответа
conditionobjectУсловие для выполнения шага
continue_on_failurebooleanПродолжить цепочку при ошибке шага
retry_countintegerКоличество повторных попыток (0-5)

Переменные

Используйте синтаксис {{variable}} для подстановки переменных в URL и тело запроса. Переменные извлекаются из предыдущих шагов через JSONPath.

{
  "extract_variables": {
    "user_id": "$.data.id",
    "user_email": "$.data.email",
    "order_items": "$.items[*].id"
  }
}

Условия выполнения

Шаги могут выполняться условно на основе результатов предыдущих шагов:

{
  "condition": {
    "operator": "status_code_in",
    "value": [200, 201]
  }
}

// Или проверка значения из ответа:
{
  "condition": {
    "operator": "equals",
    "field": "$.status",
    "value": "approved"
  }
}

Выполнения цепочки

GET
/chains/{id}/executions

История выполнений

GET
/chains/{id}/executions/{exec_id}

Детали выполнения с результатами шагов

Примечание: Цепочки поддерживают политику запуска (overlap prevention). Используйте параметры overlap_policy, max_instances для контроля параллельных выполнений.