Генератор запросов

Описание сервиса

Сервис представляет собой веб-интерфейс для генерации запросов в формате JSON на основе документов-шаблонов в форматах DOCX/XLSX/PDF-forms.

Генератор запросов позволяет:

  • автоматизировать и ускорить создание запросов на основе разработанных шаблонов.

  • проводить проверку запросов благодаря быстрой генерации отчетов прямо в интерфейсе генератора запросов.

  • быстро разобраться со структурой и параметрами запросов на практике.

Путь к сервису

Для работы с сервисом необходимо в адресной строке браузера открыть страницу генератора запросов:

[host]:[port]/xreports/req_gen

Например:

http://localhost:8886/xreports/req_gen

Интерфейс

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

../_images/gener1.jpg

Основная страница генератора запросов состоит из:

  • блока для загрузки шаблона (drag&drop либо выбор файла)

  • блока curl, который содержит команду для выполнения запроса к xreports.

  • блока запроса, который содержит JSON запроса и элементы управления запросом.

  • блока параметров, который содержит параметры для формирования запроса в зависимости от его типа.

../_images/gener2.jpg

Описание работы

Генератор запросов поддерживает загрузку шаблонов документов в формате DOCX, XLSX и PDF-форм. После загрузки файла шаблона сервис сканирует шаблон на наличие тегов и формирует json запроса с тестовыми подстановочными данными.

Пользователь может отредактировать тестовые данные вручную, а также настроить опции запроса. После того, как запрос готов, пользователь может скопировать/скачать запрос или сгенерировать отчет на основе текущего запроса.

Для того, чтобы начать работу с новым шаблоном, необходимо загрузить новый документ через блок выбора файла.

Именование тегов в шаблонах

Генератор запросов различает большинство тегов из документов шаблонов, но некоторые объектные теги неотличимы от обычных тегов данных по структуре шаблона, поэтому для корректного распознавания необходимо придерживаться определенных правил именования тегов.

Для DOCX:

В шаблонах DOCX тег таблицы без формата должен содержать константу xtnf в начале или конце названия тега:

[xtnf_table1], [таблица1_xtnf], [xtnf], [тблxtnf]

Для XLSX:

В шаблонах XLSX тег таблицы должен содержать константу xtbl в начале или конце названия тега:

[xtbl_t1], [таблица2_xtbl]

Все теги подстановки по умолчанию распознаются как строковые, таким образом тестовые значения в запросе будут строковые. Для того, чтобы генератор подставил тестовые значения тегов правильного типа нужно в тегах использовать следующие константы:

  • xnum — тег с числовым значением. Например: [xnum_value], [xnum3]

  • xfrml — тег с формулой. Например: [xfrml_форм1], [xfrml2]

  • xlink — тег с ссылкой. Например: [xlink_1], [ссылка_xlink]

API генератора

Генератор запросов имеет API, который позволяет создать свой интерфейс генератора запросов и внедрить его в свои системы.

Ниже приведено описание доступных методов API.

Метод

Путь

Описание

Параметры / Тело запроса

Ответ

POST

/xreports/api/request

Загрузка шаблона документа

Тип: multipart/form-data

Поле: template_file (файл шаблона)

200 OK

cookies: session_id

GET

/xreports/api/data

Получение тела запроса в JSON

cookies: session_id

200 OK

Тело: JSON запроса

POST

/xreports/api/cmd

Установка опции (cmd)

cookies: session_id

Тело: команда

204 No Content

GET

/xreports/api/curl

Получение curl для запроса

cookies: session_id

200 OK

Тело: JSON с curl

POST

/xreports/api/report

Генерация текущего отчета

cookies: session_id

Тело: JSON запроса

200 OK

Тело: Бинарный файл отчета

При установке опций с помощью POST /xreports/api/cmd в теле запроса может быть передана одна из следующих команд:

Команда

Описание

uri_local

Локальный URI шаблона

uri_remote

Удаленный URI шаблона

uri_embedded

Встроенный шаблон (base64)

out_base64

Установить output-mode = base64

out_binary

Установить output-mode = Бинарный поток

out_url

Установить output-mode = получение результата по ссылке

debug_on

Включить отладку

debug_off

Выключить отладку

pdf_conv_on

Включить конвертацию в PDF

pdf_conv_off

Выключить конвертацию в PDF

cells_automerge_on

Включить автоматическое объединение ячеек

cells_automerge_off

Выключить автоматическое объединение ячеек

tt_multi

Включить мультидок режим для docx, для xslx включить запрос v2

tt_single

Выключить мультидок режим, для xlsx включить запрос v1

iter_values_on

Включить итерацию тестовых значений

iter_values_off

Выключить итерацию тестовых значений

readonly_on

Включить финализацию PDF-форм

readonly_off

Выключить финализацию PDF-форм

XREPORTS также предоставляет документацию API в формате OpenAPI 3.0.

OpenAPI Spec (YAML) - Машиночитаемая спецификация API в формате YAML. Может быть использована для генерации клиентов, валидации и интеграций.

Адрес: http://<host>:<port>/xreports/swagger.yaml