MusicNest API — это RESTful API, разработанный на NestJS, который позволяет управлять музыкальными файлами и пользователями. Проект использует MongoDB для хранения данных, Express для обработки HTTP-запросов, Multer для загрузки файлов и UUID для генерации уникальных идентификаторов.
- Node.js (v14 или выше)
- MongoDB (v4.0 или выше)
- 🔗 Клонируйте репозиторий
git clone https://github.com/woookle/music_nest.git cd music_nest
- 📦 Установите зависимости
npm install
- 🌐 Создайте файл .env в корне проекта и добавьте следующие переменные окружения
DATABASE_URL = mongodb://localhost:27017/mydatabase PORT = 3000
- ✨ Запустите проект
npm run start
В вашем проекте есть директория uploads
, которая содержит поддиректории images
и audios
для сохранения изображений и аудиофайлов соответственно.
- 📁 Создайте директорию
uploads
:mkdir uploads
- 📁 Создайте директорию
uploads
:mkdir uploads/images mkdir uploads/audios
-
GET
/music
- Получить все музыкальные файлы. -
GET
/music/:userId
- Получить все музыкальные файлы пользователя.- Параметры:
{ "userId": "string" }
- Параметры:
-
POST
/music/upload
- Загрузить новый музыкальный файл.- Параметры:
{ "image": "file", "audio": "file", "name": "string", "userId": "string" }
- Параметры:
-
DELETE
/music/delete
- Удалить музыкальный файл.- Параметры:
{ "musicId": "string" }
- Параметры:
-
POST
/user/register
- Зарегистрировать нового пользователя.- Параметры:
{ "nickname": "string", "email": "string", "password": "string" }
- Параметры:
-
POST
/user/login
- Авторизовать пользователя.- Параметры:
{ "email": "string", "password": "string" }
- Параметры:
-
PATCH
/user/addfavorites
- Добавить музыкальный файл в избранное.- Параметры:
{ "userId": "string", "musicId": "string" }
- Параметры:
-
DELETE
/user/removefavorites
- Удалить музыкальный файл из избранного.- Параметры:
{ "userId": "string", "musicId": "string" }
- Параметры:
-
PATCH
/user/changeavatar
- Изменить аватар пользователя.- Параметры:
{ "userId": "string", "image": "file" }
- Параметры:
-
PATCH
/user/changenickname
- Изменить никнейм пользователя.- Параметры:
{ "userId": "string", "newnickname": "string" }
- Параметры:
-
PATCH
/user/changepassword
- Изменить пароль пользователя.- Параметры:
{ "userId": "string", "newpassword": "string" }
- Параметры: