Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Current »

Для реализации публичных методов API реализована авторизация через токен. Токен хранится в .env под названием PUBLIC_API_TOKEN.

Токен отображается в панели администрирования в разделе Системное – Обновление.

Какова схема авторизации

  • При отправке запросов по урлам вида api/public/* идёт проверка на наличие Header-а x-auth-token. Если Header присутствует и соответствует указанному в конфиге, то авторизация проходит успешно.

  • При отсутствии токена, либо если он указан неверно, возвращается ошибка 401 Authorization Required

Какие запросы можно использовать

Важно: При каждом обращении, не важно, POST или GET, в заголовках запроса нужно указывать параметр X-Auth-Token с предоставленным ключом в качестве значения.

Получение списка всех доступных отчётов

Чтобы получить список всех доступных Отчётов, нужно сделать GET запрос на адрес:

  • GET /public/api/v1/reports/list
    без параметров (только с X-Auth-Token заголовком).

В ответ придёт JSON массив объектов, каждый из которых будет содержать Название (title) и Системное имя (type).

Получение метаданных

Чтобы получить метаданные о конкретном Отчёте, нужно сделать GET запрос на адрес:

  • GET /public/api/v1/reports/metadata/<type>
    заменив в адресе <type> на нужное Системное имя, полученное на предыдущем этапе.

В ответ придёт JSON объект с двумя полями:

  • headersList — объект, содержащий предполагаемые заголовки Отчёта;
    Количество полей может быть любое, зависит от отчёта, т.к каждый Отчёт содержет различные поля;
    Ключами являются Системные имена полей, а значениями являются Названия полей (например, "email": "Почта");
    В сформированном Отчёте может быть другое количество полей или их названия (например, в Отчёте по Тестированию могут быть поля,
    отвечающие за Вопросы выбранного Тестирования, но мы не можем знать эти Вопросы (поля) до выбора самого Тестирования, поэтому в метаданных этих полей заранее быть не может).

  • filtersList — объект, содержащий Фильтры данного Отчёта;
    Ключами являются Системные имена, а значениями Объекты, с информацией о Фильтре (пример полей: type — тип, label — название, values — значения, url — адрес, на который нужно делать запрос для получения списка значений и поиска по нему);

Генерация и получение Отчёта

Чтобы сгенерировать и получить Отчёт, нужно отправить POST запрос на адрес:

  • POST /public/api/v1/reports/generate/<type>
    заменив в адресе <type> на нужное Системное имя, полученное на первом этапе.

В body запроса нужно отправить JSON объект с полем filters, в котором будут поля, ключами которых будут Системные имена Фильтров, полученных на втором этапе, а значениями непосредственно значения Фильтров (цифра, строка, массив и тд).

В ответ придёт JSON объект со следующими полями:

  • title — строка с названием Отчёта;
    Может не совпадать со значением, полученным на первом этапе, т.к может содержать дополнительные данные вроде Даты и других значений.

  • isMultiple — булево значение;
    Если значение true, то в полях headers и data будет не объект, а массив объектов - каждый объект это отдельная страница Отчёта.

  • headers — объект, содержащий заголовки таблицы Отчёта, где ключи это Системные имена полей, а значения это Названия полей.

  • data — массив объектов, содержащий данные Отчёта;
    Каждый объект в массиве - это одна строка;
    Каждый объект содержит поля, ключами которого являются Системные имена полей, а значениями являются данные (например, "status": "Активен").

  • metadata — объект, содержащий дополнительные данные об Отчёте, например, выбранные Фильтры;
    Ключами объекта являются Системные имена полей, а значениями сами Данные (например, "metadataFieldName": "Тестовый пользователь").

  • hasErrors — булево значение;
    Были ли ошибки при попытке сформировать Отчёт;
    Если значение true, значит Отчёт не сформирован и нужно смотреть ошибки в поле errors.

  • errors — объект, содержащий ошибки;
    Ключами являются Системные имена полей, а значениями Текст ошибки.

  • No labels