Узлы и плагины | Мой цифровой сад

Узлы и плагины

файл состоит из узлов, а не только HTTP-запросов; HTTP — лишь один из типов узлов в открытой плагинной системе

Узлы и плагины

Если узлы могут быть не только HTTP, происходит качественный скачок. Дерево перестаёт состоять только из HTTP-запросов — оно состоит из узлов обработки:

Users
  Orders
  Reviews
  Merge
  Report
  Save

Из них HTTP — всего два. Язык перестаёт быть HTTP DSL.

LINQ/SQL поверх HTTP

Узлы уровня данных превращают файл практически в LINQ или SQL, но поверх HTTP:

### Users
GET /users
  ### Filter    where $.active
  ### Sort      by $.lastLogin
  ### Group     by $.country

Открытая плагинная система

Все типы узлов выглядят одинаково:

### HTTP
### SQL
### MCP
### Filter
### Transform
### Prompt
### Template
### Markdown
### Save
### Delay

Исполнитель просто загружает плагины; каждый плагин умеет выполнять свой тип блока. Файл не должен состоять из HTTP-запросов — он должен состоять из узлов, а HTTP — один из них.

Разделение идентификатора и типа

Перегружать ### семантикой типа узла неудобно: название начинает одновременно быть идентификатором и задавать поведение. Лучше разделить роли:

### Users
GET /users
  ### filter: Active
  $.active
    ### http: Orders
    GET /orders/{{ $item.id }}

Здесь Users — идентификатор узла, filter — тип, Active — человекочитаемое имя. Так новые типы (mcp, sql, template, prompt, delay) регистрируются без конфликтов с именами и без изменения синтаксиса. Это масштабируется лучше, чем жёстко зашитый список специальных названий.

Источники

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

Evolution