Описание API
Схемы и модели API-ресурсов
База данных содержит 2 сущности в формате JSON:
user
- зарегистрированный пользователь:
Поле | Описание | Валидация |
---|---|---|
Почта пользователя. Обязательное поле, уникальное значение. | Регулярное выражение | |
password | Хеш пароля пользователя. Обязательное поле, уникальное значение. | - |
name | Имя пользователя. Обязательное поле, неуникальное значение, 2-30 символов | - |
movie
- избранный фильм:
Поле* | Описание | Значение |
---|---|---|
country | Страна создания фильма | string |
director | Режиссер фильма | string |
duration | Длительность фильма | number |
year | Год выпуска фильма | string |
description | Описание фильма | string |
image | Ссылка на постер к фильму | URL |
trailerLink | Ссылка на трейлер фильма | URL |
thumbnail | Иконка постера к фильму | URL |
owner | _id пользователя, добавившего фильм в избранное | - |
moeieId | id фильма | number |
nameRU | название фильма по-русски | string |
nameEN | название фильма по-английски | string |
*Все поля обязательные
Роуты и контроллеры
# возвращает информацию о пользователе (email и имя)
GET /users/me
# обновляет информацию о пользователе (email и имя)
PATCH /users/me
# возвращает все сохранённые текущим пользователем фильмы
GET /movies
# создаёт фильм с переданными в теле
# country, director, duration, year, description, image, trailer, nameRU, nameEN и thumbnail, movieId
POST /movies
# удаляет сохранённый фильм по id
DELETE /movies/_id
Контоллеры для каждого роута. Защита роута авторизацией: если пользовать не прислал JWT, доступ к роутам запрещен.
Аутентификация и авторизация
2 дополнительных роута для регистрации и логина
# создаёт пользователя с переданными в теле
# email, password и name
POST /signup
# проверяет переданные в теле почту и пароль
# и возвращает JWT
POST /signin
Защита роутов авторизацией не производится. JWT сохраняется в LocalStorage (локальную память) браузера.
Логирование
Файлы для хранения логов:
request.log
– хранит информацию обо всех обращениях к API;error.log
– хранит информацию об обшибках, которые возвращает API.
Логи в формате JSON. Файлы логов в Github-репозиторий не добавляются.
Обновлено