GET /v1/tests/{testId} возвращает детальную информацию о тесте, если он доступен текущей компании и не является integrated synthetic-тестом SCORM/CMI5/xAPI.
Endpoint
| Метод | URL |
|---|---|
| GET | https://smartway.pro/api/v1/tests/{testId} |
Назначение
Получить настройки конкретного теста: активность, количество вопросов, таймер, уникальность, валидацию и проходной балл.
Предварительные условия
| Требование | Значение |
|---|---|
| Авторизация | Authorization: Bearer <access_token> |
| Scope | tests.read |
| Tenant context | Поиск выполняется в рамках tenant context из Bearer token |
Запрос
Path parameters
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
testId |
int64 | да | ID теста |
curl пример
curl -X GET 'https://smartway.pro/api/v1/tests/200001' \
-H 'Authorization: Bearer <access_token>' \
-H 'Accept: application/json'
Ответ
Успешный ответ: 200 OK.
{
"testId": 200001,
"name": "Adaptive Sales",
"active": true,
"companyOwned": true,
"questionCount": 12,
"timerEnabled": true,
"timerMinutes": 10,
"uniquenessEnabled": true,
"uniquenessQuestionCount": 25,
"validationEnabled": true,
"passingScore": 75
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
testId |
int64 | ID теста |
name |
string | Название теста |
active |
boolean | Признак активности теста |
companyOwned |
boolean | true, если тест принадлежит текущей компании |
questionCount |
int32 | Количество вопросов в тесте |
timerEnabled |
boolean | Включён ли таймер |
timerMinutes |
int32 | Длительность таймера в минутах |
uniquenessEnabled |
boolean | Включена ли уникальность вопросов |
uniquenessQuestionCount |
int32 | Количество уникальных вопросов |
validationEnabled |
boolean | Включена ли валидация результата |
passingScore |
int32 | Проходной балл |
Бизнес-логика
-
API ищет тест в рамках tenant context из Bearer token.
-
Если тест недоступен текущей компании, API возвращает
404 Not Found. -
Integrated synthetic-тесты SCORM/CMI5/xAPI через этот endpoint не возвращаются.
Пограничные случаи
| Сценарий | Поведение API |
|---|---|
| Тест недоступен текущей компании | 404 Not Found |
testId принадлежит integrated synthetic-тесту SCORM/CMI5/xAPI |
404 Not Found |
| Настройки таймера, уникальности, валидации или проходного балла не применяются | Соответствующие поля могут быть null |
Ошибки
| HTTP status | Причина |
|---|---|
| 401 Unauthorized | Bearer token отсутствует или невалиден |
| 403 Forbidden | Недостаточно прав |
| 404 Not Found | Тест не найден, недоступен текущему tenant-у или является integrated synthetic-тестом |
| 500 Internal Server Error | Неожиданная ошибка LMS Smart Way |
| 503 Service Unavailable | Сбой внутренней интеграции LMS Smart Way |
Использование
Используйте endpoint после GET /v1/tests, чтобы получить детали конкретного теста перед созданием приглашения или анализом настроек.
Типичные ошибки
| Ошибка | Как избежать |
|---|---|
Использование testId, недоступного текущей компании |
Получайте testId через GET /v1/tests |
| Обработка nullable-полей как обязательных | Проверяйте null для настроек теста |
FAQ
Почему API возвращает 404 Not Found для существующего testId?
Тест может быть недоступен текущей компании или относиться к integrated synthetic-тестам SCORM/CMI5/xAPI.
Все ли настройки теста всегда заполнены?
Нет. Часть настроек может быть null.