-
Notifications
You must be signed in to change notification settings - Fork 0
Endpoints
Alexander Nekrasov edited this page Apr 21, 2024
·
17 revisions
-
Путь:
/api/auth/register
-
Метод:
POST
-
Параметры тела запроса:
-
login
– логин. -
password
– пароль. -
role
– роль пользователя (enum: ['admin', 'moder', 'student', 'teacher']).
-
-
Пример:
{ "login": "[email protected]", "password": "admin123", "role": "admin" }
-
Ответы:
- ID сессии в куки в заголовке ответа Set-Cookie, код ответа – 200.
- Сообщение о том, что логин-почта занят, код ответа – 409.
- Сообщение о том, что пароль слишком простой, код ответа – 400.
- Объект с ошибками валидации (логина-почты, роли), код ответа – 422.
-
Путь:
/api/auth/login
-
Метод:
POST
-
Параметры тела запроса:
-
login
– логин. -
password
– пароль.
-
-
Пример:
{ "login": "[email protected]", "password": "admin123" }
-
Ответы:
- ID сессии в куки в заголовке ответа Set-Cookie, код ответа – 200.
- Сообщение о неудачной попытке входа, код ответа – 400.
-
Путь:
/api/auth/logout
-
Метод:
GET
-
Ответы:
- Удаляет сессию и куки из браузера пользователя, код ответа – 200.
- Сообщение о необходимости авторизованного доступа, код ответа – 403.
-
Путь:
/api/users/{user_id}
-
Метод:
GET
-
Ответы:
- Структура объекта пользователя, код ответа – 200.
- Сообщение о том, что пользователь не найден, код ответа – 404.
- Сообщение о том, что ID невалидно, код ответа – 422.
- Сообщение о необходимости авторизованного доступа, код ответа – 403.
-
Путь:
/api/courses
-
Метод:
POST
-
Параметры тела запроса:
-
title
(string) – наименование курса -
description
(string) – описание курса -
author_id
(string) – ID автора курса
-
-
Тело запроса:
{ "title": "Интенсивный курс HIIT", "description": "Курс с высокоинтенсивными интервальными тренировками" }
-
Ответы:
-
JSON-документ с информацией о созданном курсе, ID (в формате UUID) созданного курса:
{ "course_id": "26bda06d-bb5e-4b4b-91cb-6b05e4cfac2c", "title": "Интенсивный курс HIIT", "description": "Курс с высокоинтенсивными интервальными тренировками", "author_id": "26bda06d-bb5e-4b4b-91cb-6b05e4cfac2c" }
- Объект с ошибками валидации, код ответа – 422.
- Сообщение о том, что курс с таким названием у автора уже существует, код ответа – 409.
- Сообщение о необходимости авторизованного доступа, код ответа – 403.
-
-
Путь:
/api/courses/{course_id}
-
Метод:
DELETE
-
Параметры пути:
-
course_id
(string,uuid) – ID курса
-
-
Ответы:
-
JSON-документ с идентификатором удаленного курса:
{ "course_id": "26bda06d-bb5e-4b4b-91cb-6b05e4cfac2c", "message": "Курс успешно удален" }
- Сообщение о том, что ID не валидно, код ответа – 422.
- Сообщение о необходимости авторизованного доступа, код ответа – 403.
-
-
Путь:
/api/courses/{course_id}/modules
-
Метод:
POST
-
Параметры пути:
-
course_id
(string) – идентификатор курса, к которому будет добавлен модуль
-
-
Параметры тела запроса:
-
title
(string) – наименование модуля
-
-
Тело запроса:
{ "title": "Введение в HIIT" }
-
Ответы:
-
JSON-документ с информацией о добавленном модуле:
{ "module_id": "26bda06d-bb5e-4b4b-91cb-6b05e4caac4c", "title": "Введение в HIIT", "course_id": "26bda06d-bb5e-4b4b-91cb-6b05e4cfac2c" }
- Сообщение о том, что ID не валидно, код ответа – 422.
- Сообщение о необходимости авторизованного доступа, код ответа – 403.
-
-
Путь:
/api/courses/{course_id}/modules/{module_id}
-
Метод:
DELETE
-
Параметры пути:
-
course_id
(string) – идентификатор курса, к которому будет добавлен модуль -
module_id
(string) – идентификатор удаляемого модуля
-
-
Пример запроса
DELETE /api/courses/26bda06d-bb5e-4b4b-91cb-6b05e4cfac2c/modules/26bda06d-bb5e-4b4b-91cb-6b05e4caac4c
-
Ответы:
-
JSON-документ c идентификатором удаленного модуля и сообщением:
{ "module_id": "26bda06d-bb5e-4b4b-91cb-6b05e4caac4c", "message": "Модуль успешно удален из курса" }
- Сообщение о том, что ID курса и/или модуля не валидно, код ответа – 422.
- Сообщение о необходимости авторизованного доступа, код ответа – 403.
-