welbex-job-interview/docs/API.MD

3.4 KiB
Raw Permalink Blame History

Backend содержит несколько API-эндпоинтов. Все они начинаются на /api/v1. Все эндпоинты для изменения или добавления чего-либо требуют JWT в Cookies под названием "jwt". Запросы на любой POST эндпоинт требуют Content-Type: application/json.

User

POST /api/v1/user/create

Требуемые параметры:

  • username: string
  • password: string

Возвращаемые параметры:

  • Успех: 200 с редиректом на /, в Cookie кладётся JWT под названием "jwt".
  • Пользователь уже существует: 409 Such user already exists.

POST /api/v1/user/login

Требуемые параметры:

  • username: string
  • password: string

Возвращаемые параметры:

  • Успех: 200 с редиректом на /, в Cookie кладётся JWT под названием "jwt".
  • Пользователь не существует: 404 User does not exist.
  • Неверный пароль: 401 Incorrect password

GET /api/v1/user/posts/:userId

Требуемые параметры:

  • userId: number (параметр в url)

Возвращаемые параметры:

  • Успех: 200 с JSON-массивом, содержащим все посты пользователя, отсортированные от самого нового до самого последнего.
  • Пользователь не существует: 404 User does not exist.

GET /api/v1/user/all

Требуемые параметры:

Возвращаемые параметры:

  • Успех: 200 с JSON-массивом, содержащим информацию о всех зарегистрированных пользователях

GET /api/v1/user/by-id/:userId

Требуемые параметры:

  • userId: number (параметр в url)

Возвращаемые параметры:

  • Успех: 200 с JSON-объектом вида {username: "имя пользователя"}

Post

POST /api/v1/post/create

Требуемые параметры:

  • message: string
  • file: file (можно выбрать только либо файл, либо сообщение)

Возвращаемые параметры:

  • Успех: 200 Ok
  • Заргужено не медиа: 400 Unknown mime type

PUT /api/v1/post/update/:postId

Требуемые параметры:

  • postId: number (параметр в url)
  • message: string
  • file: file (можно выбрать только либо файл, либо сообщение)

Возвращаемые параметры:

  • Успех: 200 Ok
  • Заргужено не медиа: 400 Unknown mime type
  • Поста не найдено: 404 Post not found.

DELETE /api/v1/post/:postId

Требуемые параметры:

  • postId: number (параметр в url)

Возвращаемые параметры:

  • Успех: 200 Ok
  • Поста не найдено: 404 Post not found.

GET /api/v1/post/:postId

Требуемые параметры:

  • postId: number (параметр в url)

Возвращаемые параметры:

  • Успех: 200 с JSON-объектом, описывающим пост
  • Поста не найдено: 404 Post not found.