LCML/Системные

env

env - Получение информации об окружении приложения

Метод

Part: LCML/Системные

Формат

env

Результат

Возвращает map[string]string, содержащую ключевые параметры окружения приложения:

  • env — название среды выполнения (например, development, production).

  • cluster — информация о текущем кластере.

  • dc — идентификатор или название дата-центра. Пример использования

{{$envData := env}}


gethostbyname

gethostbyname - Функция gethostbyname возвращает IP-адрес хоста по его имени. Если хост имеет несколько IP-адресов, выбирается случайный из них.

Метод

Part: LCML/Системные

Формат

gethostbyname name

  • name: строка с именем хоста. Результат

Возвращает строку с IP-адресом хоста.

Пример использования

{{ ip := gethostbyname “example.com” }}


help

help - Получение FuncMap со всеми доступными функциями из app

Метод

Part: LCML/Системные

Формат

help

Результат

Возвращает map[string]any

Пример использования

{{$availableFunctions := help}}


iserror

iserror - Проверка результата на наличие ошибки

Метод

Part: LCML/Системные

Функция isError проверяет, содержит ли переданный результат слово “error”. Используется для обработки выводов функций и упрощения логики определения ошибок.

Формат:

iserror output
  • output — результат выполнения другой функции или любое значение, которое нужно проверить. Результат:

Возвращает true, если строковое представление output содержит слово “error”. В противном случае возвращает false.

Пример использования:


{{ if $ticketObj }}
{{ if eq (iserror $ticketObj.Data) false }}
{{ tohtml (curl "GET" $acUrl "" nil nil) }}
{{ else }}
{{ tohtml (curl "GET" $afccUrl "" nil nil) }}
{{ end }}
{{ end }}

limiter

limiter - Ограничение частоты запросов по IP

Метод

Part: LCML/Системные

Функция limiter проверяет, может ли клиент с определённым IP-адресом отправить повторный запрос, ограничивая частоту обращений. Механизм работы основан на кэшировании времени запроса и ограничении по интервалу с последнего запроса.

Формат:

limiter ip
  • ip — IP-адрес клиента, по которому производится проверка. Результат:

Возвращает true, если клиенту разрешено отправить запрос. Возвращает false, если клиент должен подождать перед следующим запросом.

Пример использования:

{{ if limiter "192.168.0.1" }}
Запрос принят
{{ else }}
Слишком много запросов. Попробуйте позже.
{{ end }}

parseparam

parseparam - Обработка вложенных операций

Метод

Part: LCML/Системные

Функция parseparam используется для обработки строк, содержащих вложенные переменные в формате %переменная%. Она заменяет такие конструкции их значениями, взятыми из конфигурации и данных текущего контекста.

Формат:

parseparam variable configuration data outputtype
  • variable — строка, содержащая текст с вложенными переменными (например, “url”).
  • configuration — объект конфигурации, содержащий определения переменных и их источников.
  • data — объект данных, используемый для вычисления значений переменных.
  • outputtype — тип вывода: (пустая строка) — текстовый формат вывода, “html” — HTML-вывод, чтобы избежать экранирования HTML. Результат:

Возвращает строку, где вложенные переменные ( %переменная% ) заменены их значениями, вычисленными на основе конфигурации и данных.

Пример использования:

Пример конфигурации:

{
"id": {"type": "text", "source": "123-123-123"},
"url": {"type": "text", "source": "/path=%id%"}
}

Шаблон:

{{$parsedUrl := parseparam "url" $.Configuration $data ""}}
Ссылка: {{$parsedUrl}}

Результат:

<p>Ссылка: /path=123-123-123</p>

Пример с использованием данных:

Допустим, данные контекста ( $data ) содержат следующую структуру:

{
"user": {"id": "456-456-456"}
}

Конфигурация:

{
"id": {"type": "text", "source": "%user.id%"},
"url": {"type": "text", "source": "/profile=%id%"}
}

Шаблон:

{{$parsedUrl := parseparam "url" $.Configuration $data ""}}
Ссылка на профиль: {{$parsedUrl}}

Результат:

<p>Ссылка на профиль: /profile=456-456-456</p>


separator

separator - Возвращает разделитель пути для текущей операционной системы.

Метод

Part: LCML/Системные

Функция separator возвращает разделитель пути для текущей операционной системы.

Формат:

separator

Результат:

  • / — для Linux и macOS.
  • \ — для Windows. Пример использования: {{$sep := separator}} &gt;&gt; /