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