API. Завершение тестирования со стороны тест-системы
Этот механизм завершения рекомендован при использовании веб-приложения.
Система заказчика может обратиться на API Examus для завершения сеанса, сделав POST-запрос со своего сервера.
API URL:
https://[examus-url]/api/v2/integration/simple/[integration_name]/sessions/[session_id]/finish/
Тип запроса:
POST
Заголовки запроса:
Content-Type: application/json
Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MTI5OTQxMzF9.PRzN
Подпись JWT позволяет проверить, что запрос идет от системы заказчика и что токен сгенерирован в момент запроса. В payload токена содержится дата и время истечения токена в числовом формате Unix timestamp. Для вычисления этого времени можно использовать формулу “текущее время + 30 секунд”.
Пример JWT Payload:
{
"exp": 1612994131
}
JSON-тело запроса:
{
"sessionFinishUrl": "https://go.bananas.com/opentest/report/b3875623"
}
Поле |
Тип |
Описание |
sessionFinishUrl |
string (URL) |
Адрес страницы, на которую студент должен быть перенап равлен после завершения экзамена |
JSON-тело запроса может быть пустым. Если оно не пустое, то значение параметра sessionFinishUrl, переданное в этом запросе, перезаписывает значение, полученное при старте экзамена. Если не передать параметр sessionFinishUrl ни при старте, ни при завершении, то перенаправления не произойдет.
Для начатого сеанса прокторинга Экзамус отвечает успешным статусом 200 OK, означающим, что этот сеанс отмечен завершенным. В JSON-теле ответа будет присутствовать параметр message со значением finished.
Если по какой-то причине был отправлен запрос на завершение уже завершенного сеанса прокторинга, в ответ также придет статус 200 OK, значение параметра message в этом случае not_changed.
Если отправить запрос на завершение сеанса прокторинга, на который пользователь записался в календаре Экзамуса, но еще не приступил к нему, этот сеанс отменится. В ответе будет статус 200 OK, значение параметра message — canceled.
В случае, если по техническим причинам соединение между системой заказчика и Экзамусом установить не удалось, или сервер возвращает ошибки 5xx, система заказчика должна повторно делать запрос через заданный промежуток времени, т.е. реализовать retry-логику.