Сервер оценки
Сервер оценки является ключевым модулем данной программы. Данный модуль представляет собой приложение, написанное в соответствии с паттерном MVC (Model-View-Controller) [33]. Контроллерами (Controller) выступают классы, осуществляющие поддержку REST интерфейса. Поддержка MVC паттерна предоставляется фреймворком Spring MVC [34], а сам сервер разрабатывался с использованием фреймворка Spring Boot [35].
REST интерфейс
Модуль сервера оценки предоставляет ряд различных контроллеров, которые позволяют взаимодействовать с данным модулем посредством протокола HTTP. Каждому контроллеру ставится HTTP метод посылаемого обрабатываемого запроса, а также URL адрес, по которому будет осуществлен запрос. Основные контроллеры перечислены в табл. 2:
Таблица 2 Основные REST контроллеры сервера оценки
|
№ |
URL адрес |
HTTP метод запроса |
Параметры |
Описание |
|
1 |
/api |
GET |
Нет. |
Контроллер, возвращающий информацию о всех курсах, зарегистрированных в системе, а также о всех заданиях, проходящих на данных курсах. |
|
2 |
/api/{courseShortName} |
GET |
Параметр пути - courseShortName. |
Контроллер, возвращающий информацию о курсе, зарегистрированным с заданным коротким именем в системе, а также о всех заданиях, проходящих на данном курсе. |
|
3 |
/api/assignments/getAssignmentById |
GET |
assignmentId - уникальный идентификатор задания. |
Контроллер, возвращающий информацию о задании, зарегистрированным с заданным уникальным идентификатором в системе. |
|
4 |
/api/login |
POST |
username - имя пользователя, password - пароль пользователя. |
Контроллер, осуществляющий вход пользователя в систему. |
|
5 |
/api/logout |
POST |
Нет. |
Контроллер, осуществляющий выход из системы. |
|
6 |
/api/assignments/getAllResultsById |
GET |
assignmentId - уникальный идентификатор задания. |
Контроллер, возвращающий информацию о результатах всех попыток определенного задания, зарегистрированного с заданным уникальным идентификатором. |
|
7 |
/api/assignments/getAttemptsById |
GET |
assignmentId - уникальный идентификатор задания. |
Контроллер, возвращающий информацию о результатах всех попыток, сделанных студентом, осуществляющим запрос на определенном задании, зарегистрированным с заданным уникальным идентификатором. |
|
8 |
/api/assignments/triggerAssignmentById |
POST |
assignmentId - уникальный идентификатор задания, inputFile - загружаемый файл. |
Контроллер, позволяющий загрузить файл в программу и зарегистрировать попытку сдачи задания студентом, сделавшим данный запрос. |