apl-by / movies-explorer-api

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Дипломная работа Yandex-praktikum (Back-end)


О проекте

Movies-explorer-api является REST API cервиса movies-explorer, в котором можно найти фильмы по запросу и сохранить в личном кабинете. Включает в себя регистрацию, авторизацию пользователей, работу с БД.
URI ресурса:

Ссылка на front-end часть дипломного проекта: https://github.com/apl-by/movies-explorer-frontend;

Начало работы

Запуск сервера в режиме production:

npm run start

Запуск сервера в режиме разработки:

npm run dev

Роуты и эндпоинты

#возвращает информацию о пользователе (email и имя)
GET /users/me

# обновляет информацию о пользователе (email и имя)
PATCH /users/me

# возвращает все сохранённые пользователем фильмы
GET /movies

# создаёт фильм с переданными в теле
# country, director, duration, year, description, image, trailer, nameRU, nameEN, movieId, thumbnail 
POST /movies

# удаляет сохранённый фильм по _id
DELETE /movies/movieId  

# создаёт пользователя с переданными в теле
# email, password и name
POST /signup

# проверяет переданные в теле почту и пароль
# и возвращает JWT
POST /signin  

# удаляет cookie c JWT на стороне клиента
POST /signout  

Cхемы и модели ресурсов API

Поля схемы user:

email — почта пользователя, по которой он регистрируется, обязательное поле, уникальное, должно валидироваться на соответствие схеме электронной почты;
password — пароль, обязательное поле;
name — имя пользователя, обязательное поле от 2 до 30 символов;

Поля схемы movie:

country — страна создания фильма, обязательное поле-строка;
director — режиссёр фильма, обязательное поле-строка;
duration — длительность фильма, обязательное поле-число;
year — год выпуска фильма, обязательное поле-строка;
description — описание фильма, обязательное поле-строка;
image — ссылка на постер к фильму, обязательное поле-строка, URL;
trailer — ссылка на трейлер фильма, обязательное поле-строка, URL;
thumbnail — миниатюрное изображение постера к фильму, обязательное поле-строка, URL;
owner — _id пользователя, который сохранил статью, обязательное поле;
movieId — id фильма, который содержится в ответе сервиса MoviesExplorer, обязательное поле;
nameRU — название фильма на русском языке, обязательное поле-строка;
nameEN— название фильма на английском языке, обязательное поле-строка.

Технологии и библиотеки использованные в проекте

  • Express(Node.js);
  • MongoDb;
  • mongoose;
  • nodemon;
  • bcryptjs;
  • celebrate;
  • cookie-parser;
  • cors;
  • dotenv;
  • express-rate-limit;
  • express-winston;
  • helmet;
  • jsonwebtoken;
  • validator;
  • winston.

About


Languages

Language:JavaScript 100.0%