Skip to content

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.
Clone this wiki locally