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.