Skip to Content
ДиспетчерЭмуляторыШаблон ответа

Шаблон ответа

Шаблон ответа — тело, которое эмулятор возвращает на запрос к активному адресу. Шаблон задаётся на странице «Настройки адреса» и может содержать динамические поля — значения, которые эмулятор подставляет из самого запроса.

Динамические поля

Динамическое поле описывает, что извлечь из входящего запроса и под каким именем подставить в шаблон ответа. Поля настраиваются в карточке «Динамические поля».

Таблица полей показывает колонки «Имя поля», «Описание», «Источник данных» и «Тип извлечения»; строка выбирается кликом, справа открывается её форма. Кнопка «Добавить поле» создаёт новое поле, кнопка «Очистить» удаляет все поля адреса, значок корзины в строке — одно поле.

Форма поля содержит:

  • «Имя поля в шаблоне» — имя, под которым поле подставляется в шаблон; вводится без фигурных скобок, они добавляются автоматически, и в шаблоне поле выглядит как {'{{cardNumber}}'};
  • «Описание поля» — произвольное пояснение, например «Номер карты»;
  • «Источник данных» — где искать значение: «Тело запроса (Body)», «Заголовки (Headers)», «Параметры запроса»; можно отметить несколько источников;
  • «Способ извлечения» — «Границы» или «Регулярное выражение».

При способе «Границы» задаются «Левая граница» и «Правая граница»: эмулятор берёт то, что находится между ними. Например, левая граница "name": " и правая граница ", извлекут значение поля name из тела запроса в формате JSON.

При способе «Регулярное выражение» задаётся выражение с группой захвата, например X-Card-Number:\s*([^\r\n]+) — подставляется содержимое первой группы.

Правила извлечения:

  • поиск ведётся по отмеченным источникам в порядке «Параметры запроса», «Заголовки (Headers)», «Тело запроса (Body)»;
  • регистр символов при поиске не учитывается;
  • берётся первое совпадение;
  • если совпадений нет, поле подставляется пустой строкой — запрос при этом не считается ошибочным.

Динамическое поле, стоящее в самом начале шаблона, не подставляется. Чтобы значение подставилось, шаблон должен начинаться с любого символа перед полем — например, с открывающей фигурной скобки объекта JSON или с тега XML.

Редактор шаблона

Шаблон редактируется в карточке «Шаблон ответа».

Переключатель в заголовке карточки задаёт формат шаблона: «JSON», «XML» или «Текст». Кнопка «Форматировать» приводит содержимое к читаемому виду с отступами.

Слева от редактора расположена панель «Доступные поля» со списком динамических полей адреса. Поле вставляется в шаблон кликом по нему (в текущую позицию курсора) или перетаскиванием в нужное место. Вставленное поле редактор обрабатывает как единое целое: курсор и удаление работают с ним целиком, а не посимвольно.

Пример шаблона в формате JSON:

{ "status": "success", "userId": "{{userId}}", "statusCode": {{statusCode}}, "data": {} }

Редактор подсвечивает проблемы прямо в тексте:

СообщениеПричина
«Пустое имя переменной»В шаблоне встретилась конструкция из двойных фигурных скобок без имени
«Переменная «X» не объявлена в динамических полях»Имя в шаблоне не совпадает ни с одним динамическим полем адреса
«JSON: …»Шаблон в формате «JSON» не разбирается как корректный JSON
«XML: …»Шаблон в формате «XML» не разбирается как корректный XML

При проверке формата динамические поля временно заменяются значением-заглушкой, поэтому шаблон проверяется целиком, вместе с подстановками.

Шаблон сохраняется вместе с остальными настройками адреса кнопкой «Сохранить настройки».

Обновлено: