API системы доступен по пути верхнего уровня /api.
- GET
/api/ping– проверка работоспособности сервиса.
- POST
/api/consumers/registration— регистрация пользователя. - POST
/api/consumers/login— аутентификация пользователя. - DELETE
/api/consumers/delete- удаление пользователя. - GET
/api/consumers/get_me— получение профиля аутентифицированного пользователя. - PUT
/api/consumers/update_password- изменение пароля пользователя. - POST
/api/consumers/refresh-token— перевыпуск пары авторизационных токенов.
- GET
/api/consumers/all— получение списка пользователей;
Система работы с тестами доступна по пути среднего уровня /tests.
- GET
/api/test/all- получение всех тестов, которые имеются в системе. - GET
/api/test/:test_id- получение теста по его идентификатору.
Система работы с тестами доступна по пути среднего уровня /resolved.
- POST
/api/resolved/create- создание решенного теста. - GET
/api/resolved/:resolved_id- получение решенного теста по его идентификатору.
Система работы с результатами тестирования доступна по пути среднего уровня /results.
- GET
/api/results/all- получение всех результатов пользователя. - POST
/api/results/create- сохранение результата тестирования. - GET
/api/results/:result_id- получение результата тестирования по его идентификатору. - GET
/api/results/my- получение результатов тестирования по идентификатору пользователя. - POST
/api/results/send_on_email- отправка результата тестирования на e-mail адрес.
Формат запроса:
GET /api/ping HTTP/1.1
Content-Type application/json
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>"
}
Формат запроса:
GET /api/resolved/create HTTP/1.1
Content-Type application/json
...
{
"test_type": "first_order_test",
"questions": [
{
"question_order": "<question_order>",
"question": "<question>",
"question_answer": "<answer>"
},
...
]
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"id": "<id>",
"questions": [
{
"question_order": "<question_order>",
"question": "<question>",
"question_answer": "<question_answer>",
"mark": "<mark>"
},
...
]
}
Формат запроса:
GET /api/resolved/:resolved_id HTTP/1.1
Content-Type application/json
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"id": "<id>",
"user_id": "<user_id>",
"resolved_type": "<resolved_type>",
"is_active": "<is_active>",
"passed_at": "<passed_at>",
"questions": [
{
"resolved_id": "<resolved_id>",
"question_order": "<question_order>",
"issue": "<issue>",
"question_answer": "<question_answer>",
"image_location": "<image_location>",
"mark": "<mark>"
},
...
]
}
Формат запроса:
POST /api/consumers/registration HTTP/1.1
Content-Type application/json
...
{
"login": "<login>",
"password": "<password>"
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>"
}
Формат запроса:
POST /api/consumers/login HTTP/1.1
Content-Type application/json
...
{
"login": "<login>",
"password": "<password>"
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>"
}
Формат запроса:
DELETE /api/consumers/delete HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
Формат запроса:
GET /api/consumers/get_me HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"id": "<consumer_id>",
"login": "<login>",
"created_at": "<timestamp>",
}
Формат запроса:
PUT /api/consumers/update_password HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
{
"old_password": "<old_password>",
"new_password": "<new_password>"
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...
Формат запроса:
POST /api/consumers/refresh-token HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"access_token": "<access_token>",
"refresh_token": "<refresh_token>"
}
Формат запроса:
GET /api/test/all HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"tests": [
{
"id": "<id>",
"name": "<name>",
"description": "<description",
"questions": [
{
"order": "<order>",
"question": "<question>"
},
...
]
},
...
]
}
Формат запроса:
GET /api/test/:test_id HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"id": "<id>",
"name": "<name>",
"description": "<description",
"questions": [
{
"order": "<order>",
"question": "<question>"
},
...
]
}
Формат запроса:
POST /api/results/create HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
{
"resolved_id": "<resolved_id>",
"test_type": "<test_type>",
"image_location": "<image_location>",
"questions": [
{
"question_order": "<question_order>",
"mark": "<mark>"
},
...
]
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"id": "<id>",
"resolved_id": "<resolved_id>",
"image_location": "<image_location>",
"professions": [
"<profession>",
"<profession>",
"<profession>"
]
}
Формат запроса:
GET /api/results/:result_id HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
{
"resolved_id": "<resolved_id>",
"test_type": "<test_type>",
"image_location": "<image_location>",
"questions": [
{
"question_order": "<question_order>",
"mark": "<mark>"
},
...
]
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
"id": "<id>",
"resolved_id": "<resolved_id>",
"image_location": "<image_location>",
"professions": [
"<profession>",
"<profession>",
"<profession>"
]
}
Формат запроса:
GET /api/results/my HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
Формат ответа:
HTTP/1.1
Content-Type application/json
...
{
Results: [
{
"id": "<id>",
"user_id": "<user_id>",
"resolved_id": "<resolved_id>",
"image_location": "<image_location>",
"professions": [
"<profession>",
"<profession>",
"<profession>"
],
"created_at": "<created_at>"
},
...
]
}
Формат запроса:
POST /api/results/send_on_email HTTP/1.1
Content-Type application/json
Authorization Bearer <token>
...
{
"test_name": "<test_name>",
"email": "<email>",
"professions": [
"<profession>",
"<profession>",
"<profession>"
],
}
Формат ответа:
HTTP/1.1
Content-Type application/json
...