# Мобильный автономный комплекс
Данная модель описывает REST-API интерфейс сервиса мобильного автономного комплекса
### [](#%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)Авторизация
#### [](#%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B5-%D0%BC%D0%B0%D0%BA-%D0%B8-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%B0-%D1%81%D0%B5%D1%81%D1%81%D0%B8%D0%B8)Аутентификация в сервисе МАК и получение **токена** сессии
Строка запроса **POST**: /token
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0)Параметры запроса:
Параметр | Значение | Описание |
---|
grant\_type | Список (enum) | Тип авторизации, по умолчанию *password* |
username | Текстовый | Логин пользователя |
password | Текстовый | Пароль пользователя |
scope | Текстовый | Область видимости |
client\_id | Числовой | Идентификатор клиента |
client\_secret | Текстовый | Ключ доступа клиента |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0)Варианты ответа:
**Ошибка 401**
```
{
"detail": "UNAUTHORIZED"
}
```
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
**Успешно**
```
{
"access_token": "Токен аутентификации",
"token_type": "baerer"
}
```
### [](#%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C)Пользователь
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5)Получение информации о пользователе
Строка запроса **GET**: /api/v1/person/info
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-1)Параметры запроса:
*Не имеет параметров*
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-1)Варианты ответа:
**Успешно**
```
{
"name": "Имя пользователя"
}
```
### [](#%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD)Экзамен
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B7%D0%B0%D0%BF%D0%BB%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2)Получает список запланированных экзаменов
Строка запроса **GET**: /api/v1/exam/events
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-2)Параметры запроса:
Параметр | Значение | Описание |
---|
dtfrom | Дата и время | Дата-время начала периода, по умолчанию - текущее время/ |
dtto | Дата и время | Дата-время окончания периода, по умолчанию - текущее время |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-2)Варианты ответа:
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
**Успешно**
```
[
{
"id": "Идентификатор экзамена",
"start": "Дата-время начала экзамена",
"end": "Дата-время окончания экзамена",
"title": "Название экзамена",
"content": "Содержание/Описание экзамена",
"class": "Вид принимаемого экзамена"
}
]
```
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82-%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE-%D0%B7%D0%B0%D0%BF%D0%BB%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B5-%D0%BF%D0%BE-%D0%B5%D0%B3%D0%BE-%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D1%83)Получает сведения о запланированном экзамене по его идентификатору
Строка запроса **GET**: /api/v1/exam/**{exam\_id}**
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-3)Параметры запроса:
Параметр | Значение | Описание |
---|
exam\_id | Числовой | Идентификатор экзамена *(часть запроса)* |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-3)Варианты ответа:
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
**Успешно**
```
[
{
"id": "Идентификатор экзамена",
"begin_utc": "Дата-время начала экзамена по гринвичу",
"end_utc": "Дата-время окончания экзамена по гринвичу",
"s_type": "Тип экзамена",
"experts": [
{
"id": "Идентификатор эксперта",
"name": "ФИО эксперта"
}
],
"student": {
"id": "Идентификатор соискателя",
"name": "ФИО соискателя"
},
"exam": "Экзамен"
"actions": [
{
"id": "Идентификатор действия эксперта",
"a_type": "Тип действия",
"created_utc": "Дата возникновения действия по гринвичу",
"expart_id": "Идентификатор эксперта",
"data": "Данные действия эксперта"
}
]
}
]
```
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B9-%D1%8D%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BF%D0%BB%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D0%BF%D0%BE-%D0%B5%D0%B3%D0%BE-%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D1%83)Получение списка действий экспертов запланированного экзамена по его идентификатору
Строка запроса **GET**: /api/v1/exam/**{exam\_id}**/action
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-4)Параметры запроса:
Параметр | Значение | Описание |
---|
exam\_id | Числовой | Идентификатор экзамена *(часть запроса)* |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-4)Варианты ответа:
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
**Успешно**
```
[
"id": "Идентификатор действия эксперта",
"a_type": "Тип действия",
"created_utc": "Дата возникновения действия по гринвичу",
"expart_id": "Идентификатор эксперта",
"data": "Данные действия эксперта",
]
```
#### [](#%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%8F-%D1%8D%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%B0)Добавление нового действия эксперта
Строка запроса **POST**: /api/v1/exam/**{exam\_id}**/practice/action
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-5)Параметры запроса:
Параметр | Значение | Описание |
---|
exam\_id | Числовой | Идентификатор экзамена *(часть запроса)* |
a\_type | | Тип действия |
data | | Данные действия эксперта |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-5)Варианты ответа:
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
- Успешно //Нет данных ответа// }
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-%D0%BF%D1%80%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D0%BC%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0)Получение состояния принимаемого экзамена
Строка запроса **GET**: /api/v1/exam/**{exam\_id}**/practice/viewstate
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-6)Параметры запроса:
Параметр | Значение | Описание |
---|
exam\_id | Числовой | Идентификатор экзамена *(часть запроса)* |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-6)Варианты ответа:
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
**Успешно**
```
{
"state": "Состояние принимаемого экзамена",
"task": "Задание",
"task_lock": [ "Заблокированное задание" ],
"wait_experts": [ "Идентиифкатор эксперта" ]
}
```
### [](#%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)Администрирование
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D0%BA%D1%82%D0%B8%D0%BA%D0%B8-%D0%BF%D0%BE-%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0%D0%BC)Получение статисктики по проведенным экзаменам
Строка запроса **GET**: /api/v1/admin/stat
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-7)Параметры запроса:
*Не имеет параметров*
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-7)Варианты ответа:
**Успешно** *Строковый результат*
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D0%B5%D1%82-%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D0%B1-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B5-%D0%BA%D0%B2%D0%B0%D0%BB%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE-%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D1%83)Получает сведения об экзамене? квалфикации? по идентификатору
Строка запроса **GET**: /api/v1/admin/test/**{skill\_id}**
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-8)Параметры запроса:
Параметр | Значение | Описание |
---|
skill\_id | Числовой | Идентификатор экзамена? квалификации? *(часть запроса)* |
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-8)Варианты ответа:
**Ошибка 422**
```
{
"detail": [
{
"loc": ["Положение ошибки"],
"msg": "Сообщение ошибки",
"type": "Тип ошибки"
}
]
}
```
**Успешно** *Строковый результат*
### [](#%D0%B7%D0%B0%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BC%D0%B0%D0%BA)Завершение работы МАК
Строка запроса **POST**: /api/v1/admin/poweroff
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-9)Параметры запроса:
*Не имеет параметров*
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-9)Варианты ответа:
**Успешно** *Строковый результат*
### [](#%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)Синхронизация
#### [](#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5-%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D1%8D%D0%BA%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2)Получение состояние синхронизации экзаменов
Строка запроса **GET**: /api/v1/sync/exams
##### [](#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-10)Параметры запроса:
*Не имеет параметров*
##### [](#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0-10)Варианты ответа:
**Успешно** *Строковый результат*