movies-explorer-api's People
movies-explorer-api's Issues
Add Joi Request Verification
Add logging
Настройте два файла для хранения логов:
- request.log, чтобы хранить информацию о всех запросах к API;
- error.log, чтобы хранить информацию об ошибках, которые возвращает API.
Логи должны быть в формате JSON. Файлы логов не должны добавляться в репозиторий.
Enable Cors module
Add Centalized Error Detection
Deploy
Создайте сервер. Затем установите всё необходимое и разверните на нём API.
Важно реализовать возможность обращаться к API по публичному IP-адресу. Раньше мы обращались к серверу локально — по адресу localhost. Для разработки это нормально, но в продакшене не годится: к вашему localhost можете обратиться только вы. Поэтому сервер нужно где-то разместить.
Мы рекомендуем использовать Яндекс Облако для создания облачного сервера. Оно предоставляет грант для новых пользователей — что-то вроде бесплатного периода. Если вы уже пользовались Яндекс Облаком и входного гранта у вас нет, обратитесь к куратору.
Создайте домен и прикрепите его к серверу.
Закрепите за доменом публичный IP-адрес своего сервера. Подойдёт и бесплатный домен. Его вы можете зарегистрировать на нашем сервисе. Ссылку на него получите у куратора. Вы уже создавали домен в последнем спринте, сделайте это снова.
Критерий готовности: к API можно обратиться по доменному имени.
Выпустите сертификаты и подключите их.
Должна быть возможность обратиться к серверу по https.
Создайте на сервере .env файл.
Добавьте в этот файл переменные окружения:
NODE_ENV=production;
JWT_SECRET с секретным ключом для создания и верификации JWT.
.env файл должен храниться только на сервере. В репозитории хранить переменные окружения нельзя — это небезопасно.
В режиме разработки код должен запускаться и работать без этого файла. Задайте условие, чтобы dev-сборка запускалась, когда process.env.NODE_ENV !== 'production'.
Расскажите, как найти ваш публичный сервер.
Добавьте в файл README.md домен, по которому можно обратиться к вашему серверу.
Implement Authorization
- создаёт пользователя с переданными в теле:
email, password и name
POST /signup
- проверяет переданные в теле почту и пароль
и возвращает JWT:
POST /signin
Make User Model
email
password
name
Make Movie Model
country — страна создания фильма. Обязательное поле-строка.
director — режиссёр фильма. Обязательное поле-строка.
duration — длительность фильма. Обязательное поле-число.
year — год выпуска фильма. Обязательное поле-строка.
description — описание фильма. Обязательное поле-строка.
image — ссылка на постер к фильму. Обязательное поле-строка. Запишите её URL-адресом.
trailer — ссылка на трейлер фильма. Обязательное поле-строка. Запишите её URL-адресом.
thumbnail — миниатюрное изображение постера к фильму. Обязательное поле-строка. Запишите её URL-адресом.
owner — _id пользователя, который сохранил фильм. Обязательное поле.
movieId — id фильма, который содержится в ответе сервиса MoviesExplorer. Обязательное поле.
nameRU — название фильма на русском языке. Обязательное поле-строка.
nameEN — название фильма на английском языке. Обязательное поле-строка.
Implement Routes
-
возвращает информацию о пользователе (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/movieId
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.