Выражения и контекст исполнения | Мой цифровой сад

Выражения и контекст исполнения

единый механизм {{ }} для вычислений (как в n8n) и контекст первого класса — $Login, $item, $parent, $env; Filter и пагинация выражаются через тот же механизм

Выражения и контекст исполнения

Вместо специальных конструкций вводится единый механизм вычислений — выражения в двойных фигурных скобках (идея заимствуется у n8n). Они визуально отделены от обычного текста, но запрос остаётся почти обычным HTTP.

Контекст первого класса

Runtime-объекты дают доступ к результатам и окружению:

$Login.body.token          # результат узла Login
$Login.headers.Authorization
$Login.status
$item.id                   # текущий элемент коллекции (foreach)
$parent.body.next          # результат родителя (пагинация)
$env.API_URL               # переменная окружения

Ссылка на результат узла — это $<node-name>.<output>. Каждый узел имеет контракт: input, output, context.

HTTP остаётся HTTP

Выражение вычисляется и рендерится прямо в запрос:

### Profile
GET /profile
Authorization: Bearer {{ $Login.body.token }}

Выражение может возвращать не только строку, но и объект — например, тело POST, собранное из нескольких результатов. Зависимости из выражений автоматически строят план: если Profile ссылается на $Login, исполнитель понимает Login → Profile.

Filter и пагинация — без нового синтаксиса

Filter использует тот же механизм выражений, а не отдельную конструкцию:

### Users
GET /users
  ### Filter: Active
  {{ $item.active }}
  ### Orders
  GET /orders?user={{ $item.id }}

Пагинация — естественное продолжение: дочерний узел, URL которого зависит от результата родителя (GET {{ $parent.body.next }}).

Execution tags

Управляющие конструкции заменяются метаданными-тегами, а не новым синтаксисом:

Для «голого $» есть альтернатива — контекст как объект: current.active, result.active, input.active.

Источники

Связанные заметки

Evolution