Skip to content

ОтелГеттерТекстовойКарты

Геттер текстовой карты для пропагаторов.

Описание

Реализует абстракцию Getter для работы с носителем типа Соответствие. Обеспечивает case-insensitive доступ к заголовкам для HTTP-совместимости.

Объект является stateless и может быть сохранён как константа — создавать новый экземпляр для каждой операции не требуется.

Конструктор

Конструктор без параметров. Stateless — без состояния.

bsl
Новый ОтелГеттерТекстовойКарты()

Методы

Получить

Возвращает первое значение по заданному ключу из носителя. Поиск выполняется без учёта регистра для HTTP-совместимости.

ПараметрТипПо умолчаниюОписание
НосительСоответствиеКоллекция заголовков
КлючСтрокаИмя заголовка

Возвращает: Строка, Неопределено — первое найденное значение или Неопределено

ПолучитьВсе

Возвращает все значения по заданному ключу из носителя. Поиск выполняется без учёта регистра.

ПараметрТипПо умолчаниюОписание
НосительСоответствиеКоллекция заголовков
КлючСтрокаИмя заголовка

Возвращает: Массив из Строка — все найденные значения (пустой массив, если ключ не найден)

Ключи

Возвращает список всех ключей из носителя.

ПараметрТипПо умолчаниюОписание
НосительСоответствиеКоллекция заголовков

Возвращает: Массив из Строка — список ключей

Пример

bsl
#Использовать opentelemetry

Геттер = Новый ОтелГеттерТекстовойКарты();

Заголовки = Новый Соответствие();
Заголовки.Вставить("traceparent", "00-abc123...");
Заголовки.Вставить("Content-Type", "application/json");

// Case-insensitive поиск
Значение = Геттер.Получить(Заголовки, "TRACEPARENT"); // "00-abc123..."
Значение = Геттер.Получить(Заголовки, "content-type"); // "application/json"

// Получить все ключи
Ключи = Геттер.Ключи(Заголовки); // ["traceparent", "Content-Type"]

// Использование с пропагатором
Пропагатор = Новый ОтелW3CПропагатор();
НовыйКонтекст = Пропагатор.Извлечь(ОтелКонтекст.Текущий(), Заголовки, Геттер);