К содержанию

Навигация

Входы и источники данных

Эта глава описывает, как Recipe объявляет входы и как узел Document хранит связь с источником данных.

Входы Recipe

Recipe объявляет входы, но сам не обращается к базе или API. Вход бывает трёх видов:

  • parameter — простое значение без внешнего источника;
  • setting — настройка сайта, раздела или страницы;
  • content — содержимое.

Каждый вход имеет схему значения, а для настройки и содержимого — ожидаемое происхождение expectedOrigin: владелец, имя и при необходимости ревизия.

JSON
"body": {
  "kind": "content",
  "schema": {"type": "array"},
  "expectedOrigin": {"owner": "example/content", "ref": "article.demo", "revision": "108"}
}

Значение по умолчанию у входа может быть только готовым литералом.

Входы нужны, когда текст, карточки или настройки приходят из базы, API проекта или системы управления сайтом. Проект проверяет права и передаёт Framework доверенный снимок значений (Снимок входов). Токены, SQL, закрытые адреса и готовые запросы в Recipe не помещают.

Привязки к источнику

Узел, содержимое которого пришло из внешнего источника, хранит привязку (bindings). В Recipe привязка пишется коротко — {input, target}, а в готовом Document превращается в полную запись происхождения:

JSON
"bindings": [{"owner": "project/catalog", "ref": "products", "target": "items", "revision": "42"}]

Привязка сообщает продукту, какой набор данных стоит за узлом: владелец owner, имя набора ref, поле узла target и ревизия. Сама по себе она не загружает данные и не даёт доступа. normalize() собирает все привязки документа в список зависимостей.

Проект передаёт значение только после проверки доступа. Framework сверяет область, происхождение, ревизию и отпечаток. Отказ доступа — ошибка, а не отсутствующее значение, и частичный Document при этом не создаётся.

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы