- Docker
- Node version 18.12.1
- Clonar el proyecto:
git clone https://github.com/mauriciorobayo/el-backend
cd el-backend
- Crear archivo
.env
:
cp .env.example .env
- TMDB Access Token
El proyecto usa access token (v3 y v4) y no API_KEY (v3).
Para obtener el access token ir a https://www.themoviedb.org/settings/api y copiar el JWT que se encuentra en la sección API Read Access Token (v4 auth)
.
En el archivo .env
pegar el access token para el valor de TMDB_ACCESS_TOKEN
.
- Instalar dependencias:
yarn install
- Levantar la imagen de MongoDB:
docker-compose up mongodb -d
- Iniciar el proyecto:
yarn start
Una vez el proyecto esté corriendo, documentación Swagger se puede consultar en http://localhost:3000/docs.
La aplicación permite consultar las películas más populares usando el endpoint: http://localhost:3000/movies/popular
También se pueden buscar películas usando el endpoint: http://localhost:3000/movies/search?query=<PALABRA CLAVE DE BÚSQUEDA>
Estos endpoints no requieren autenticación.
Para crear un usuario:
POST http://localhost:3000/auth/register
{
"email": "nobody@email.com",
"name": "NoBody",
"password": "Abcde123!$"
}
Una vez crea el usuario debe ir al buzón de correo del usuario para verificar la cuenta dando click en el vínculo que fue enviado.
Para ingresar una vez verificado el correo del usuario creado:
POST http://localhost:3000/auth/login
{
"email": "nobody@email.com",
"password": "Abcde123!$"
}
El login devuelve el accessToken
y el refreshToken
. Para generar una solicitud autenticada debe enviar el accessToken
recibido como bearer
token.
Para crear una nota:
POST http://localhost:3000/users/notes
authorization: bearer <ACCESS_TOKEN>
{
"movieId": <MOVIE API ID>,
"title": "title",
"description": "description",
"imageUrl": "https:image.url.com"
}
Editar una nota:
PATCH http://localhost:3000/users/notes
authorization: bearer <ACCESS_TOKEN>
{
"description": "esto cambió"
}
Para agregar una lista a los favoritos:
POST http://localhost:3000/users/favorites
authorization: bearer <ACCESS_TOKEN>
{
"movieId": <MOVIE API ID>,
}
This is still WIP :\
yarn test
La API puede ser desplegada usando serverless, se necesita tener el comando sls
instalado (npm install -g serverless
) y crear el archivo .env.prop
a partir de .env.example:
yarn build
sls deploy
Puede probar el deploy de staging actual:
- GET - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/movies/search
- GET - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/movies/popular
- POST - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/auth/register
- POST - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/auth/login
- POST - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/users/favorites
- POST - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/users/notes
- PATCH - https://250nu3bklh.execute-api.us-east-1.amazonaws.com/users/notes/{nodeId}
Para hacer pruebas en postman: Postman Collection.