Skip to Content
⚙️ Активно работаю над созданием контента и документами для портфолио

Описание API

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

База данных содержит 2 сущности в формате JSON:

  1. user - зарегистрированный пользователь:
ПолеОписаниеВалидация
emailПочта пользователя. Обязательное поле, уникальное значение.Регулярное выражение
passwordХеш пароля пользователя. Обязательное поле, уникальное значение.-
nameИмя пользователя. Обязательное поле, неуникальное значение, 2-30 символов-
  1. movie- избранный фильм:
Поле*ОписаниеЗначение
countryСтрана создания фильмаstring
directorРежиссер фильмаstring
durationДлительность фильмаnumber
yearГод выпуска фильмаstring
descriptionОписание фильмаstring
imageСсылка на постер к фильмуURL
trailerLinkСсылка на трейлер фильмаURL
thumbnailИконка постера к фильмуURL
owner_id пользователя, добавившего фильм в избранное-
moeieIdid фильма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-репозиторий не добавляются.

Обновлено