diff --git a/docs/API.MD b/docs/API.MD new file mode 100644 index 0000000..613e71f --- /dev/null +++ b/docs/API.MD @@ -0,0 +1,82 @@ +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. + diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md new file mode 100644 index 0000000..a7e8183 --- /dev/null +++ b/docs/DEPLOYMENT.md @@ -0,0 +1,5 @@ +Для разворачивания сервиса необходимо: +1. Склонировать репозиторий +2. Скопировать sample.env в .env и отредактировать его +3. Скопировать nginx.conf в data/ngninx +4. ``docker-compose up --build -d``