Главная API Как получить сохранённый фильтр отчётов по тестированию через API

Как получить сохранённый фильтр отчётов по тестированию через API

Обновлено Apr 28, 2026

Endpoint GET /api/v1/tests/reports/filter возвращает сохранённый фильтр отчётов по тестированию для userKey, который берётся из subject Bearer token. Для company API key этот userKey имеет формат company-api-key:{companyId} и остаётся стабильным после ротации ключа. Для доступа нужен Bearer token со scope tests.read.

Какой endpoint используется?

Используется GET /api/v1/tests/reports/filter. Endpoint возвращает текущий сохранённый фильтр отчётов по тестированию для user context из Bearer token.

Параметр Значение
Method GET
Endpoint /api/v1/tests/reports/filter
Base URL [https://smartway.pro](https://smartway.pro)
Auth Bearer token

Для чего используется этот API endpoint?

Endpoint используется для просмотра текущего фильтра, который применяется к поиску и экспорту отчётов по тестированию. Его используют перед POST /api/v1/tests/reports/search или POST /api/v1/tests/reports/export, чтобы понять, какие ограничения будут применены.

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

Предусловие Описание Обязательно
access_token Bearer token Да
tests.read Scope для чтения сохранённого фильтра Да

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

Headers

Header Тип Обязательно Описание
Authorization string Да Bearer token в формате Bearer <access_token>
Accept string Да application/json

Path parameters

Path parameters отсутствуют.

Query parameters

Query parameters отсутствуют.

Request body

Request body не используется.

curl-пример

curl -X GET 'https://smartway.pro/api/v1/tests/reports/filter' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/json'

Какой ответ возвращает API?

Успешный запрос возвращает 200 OK и объект PublicTestReportFilterResponse с параметрами сохранённого фильтра.

{
  "active": true,
  "startDate": "2026-03-01",
  "endDate": "2026-03-10",
  "groupByName": true,
  "testIds": [5, 200001],
  "departments": ["Sales"],
  "jobTitles": ["Manager"]
}

Что означают поля в ответе API?

Поле Тип Описание
active boolean Фильтр по признаку активности отчёта
startDate string Начало диапазона дат
endDate string Конец диапазона дат
groupByName boolean Группировка нескольких попыток прохождения теста
testIds array Набор ID тестов для фильтра
departments array Набор департаментов для фильтра
jobTitles array Набор должностей для фильтра

Что происходит под капотом?

  • Фильтр привязан к userKey, который берётся из subject Bearer token.

  • Для company API key userKey имеет формат company-api-key:{companyId}.

  • userKey стабилен после ротации ключа.

  • Внешний клиент не передаёт idUser.

  • Для доступа нужен scope tests.read.

Какие edge cases нужно учитывать?

Сценарий Поведение API Что сделать интегратору
Ротация company API key userKey остаётся стабильным в формате company-api-key:{companyId} Не создавать отдельную привязку к active key id
idUser в запросе Внешний клиент не передаёт idUser Не добавлять idUser в query string или body
Активный сохранённый фильтр Фильтр применяется к поиску и экспорту Проверять фильтр перед получением отчётов

Какие ошибки может вернуть API?

HTTP status Описание
401 Unauthorized Отсутствует или невалидный Bearer token
403 Forbidden Недостаточно прав
500 Internal Server Error Неожиданная ошибка
503 Service Unavailable Сбой сервиса

Как использовать результат в следующих API-запросах?

Используйте полученный фильтр, чтобы понять, какие ограничения будут применены к POST /api/v1/tests/reports/search и POST /api/v1/tests/reports/export.

Пример поиска отчётов после проверки фильтра:

curl -X POST 'https://smartway.pro/api/v1/tests/reports/search' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Accept: application/json'

Каких ошибок интегратору стоит избегать?

  • Передавать idUser в запросе.

  • Ожидать, что фильтр привязан к конкретному active key id.

  • Запускать поиск или экспорт без проверки текущего фильтра.

  • Вызывать endpoint без scope tests.read.

FAQ

К чему привязан сохранённый фильтр?

Фильтр привязан к userKey, который берётся из subject Bearer token.

Какой формат userKey у company API key?

Для company API key userKey имеет формат company-api-key:{companyId}.

Нужно ли передавать idUser?

Нет. Внешний клиент не передаёт idUser.

Изменится ли фильтр после ротации ключа?

Для company API key userKey стабилен после ротации ключа.

Какой scope нужен?

Для доступа нужен scope tests.read.