ОтелГеттерТекстовойКарты
Геттер текстовой карты для пропагаторов.
Описание
Реализует абстракцию Getter для работы с носителем типа Соответствие. Обеспечивает case-insensitive доступ к заголовкам для HTTP-совместимости.
Объект является stateless и может быть сохранён как константа — создавать новый экземпляр для каждой операции не требуется.
Конструктор
Конструктор без параметров. Stateless — без состояния.
Новый ОтелГеттерТекстовойКарты()Методы
Получить
Возвращает первое значение по заданному ключу из носителя. Поиск выполняется без учёта регистра для HTTP-совместимости.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков |
Ключ | Строка | — | Имя заголовка |
Возвращает: Строка, Неопределено — первое найденное значение или Неопределено
ПолучитьВсе
Возвращает все значения по заданному ключу из носителя. Поиск выполняется без учёта регистра.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков |
Ключ | Строка | — | Имя заголовка |
Возвращает: Массив из Строка — все найденные значения (пустой массив, если ключ не найден)
Ключи
Возвращает список всех ключей из носителя.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Носитель | Соответствие | — | Коллекция заголовков |
Возвращает: Массив из Строка — список ключей
Пример
#Использовать opentelemetry
Геттер = Новый ОтелГеттерТекстовойКарты();
Заголовки = Новый Соответствие();
Заголовки.Вставить("traceparent", "00-abc123...");
Заголовки.Вставить("Content-Type", "application/json");
// Case-insensitive поиск
Значение = Геттер.Получить(Заголовки, "TRACEPARENT"); // "00-abc123..."
Значение = Геттер.Получить(Заголовки, "content-type"); // "application/json"
// Получить все ключи
Ключи = Геттер.Ключи(Заголовки); // ["traceparent", "Content-Type"]
// Использование с пропагатором
Пропагатор = Новый ОтелW3CПропагатор();
НовыйКонтекст = Пропагатор.Извлечь(ОтелКонтекст.Текущий(), Заголовки, Геттер);