A progressive Node.js framework for building efficient and scalable server-side applications.
Estas son las instrucciones de la aplicación Online (Cars Back Api)
Puede hacer click sobre los contenidos para hacer una búsqueda más rápida
Este es el back Cars api, es una aplicación en la cual se pueden cargar autos simulando la carga, la edición y la eliminación de autos como así también el registrarse en la misma aplicación, El loguearse le va a permitir cargar editar los productos, que en esta aplicación en particular son autos
- Node.js
- Typescript
- MongoDB
Abrir un terminal y ejecutar el comando docker-compose up de esa manera se va a correr el contenedor de docker, que tiene alojada la DB de Mongo. Además de toda la aplicación del back-end. De esa forma se instalarán todas la dependencia automáticamente gracias al Dockerfile. El puerto por defecto de la aplicación es el 4000
Como ya se dijo anteriormente, la base de datos es Mongo DB. La misma consta de varias colecciones, entre ellas Users y Cars.
Todas las rutas a excepción de las de del tipo get o create user y login llevan el token en las cabeceras, para que estas puedan funcionar de manera correcta. Si lo hace desde postman tiene que ingresar los datos de la siguiente forma, donde la key es token y el valor tiene que ser su token KEY:token VALUE: su token
http://localhost:4000/cars/findAll?offset=0&limit=2 GET: Esta ruta muestra todos los autos que se encuentran en la base de datos, además puede ordenar por precio, también puede ponerle un límite de la cantidad de autos que desea, como así también cuantos desea saltar
//Ejemplo
[
{
' _id ': '62c61e494c3e1ced7a851c8a',
' name ': 'ferrari',
' price ': 2502448,
' description ':
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
' images ': [
{
' name ': 'auto1.jpg',
' _id ': '62c61e494c3e1ced7a851c8b',
},
],
'createdAt ': '2022-07-06T23:44:09.993Z',
' __v': 0,
},
{
' _id ': '62c61e4a4c3e1ced7a851cbe',
' name ': 'ferrari',
' price ': 2636816,
' description ':
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
' images ': [
{
' name': 'auto2.jpg',
' _id ': '62c61e4a4c3e1ced7a851cbf',
},
],
' createdAt ': '2022-07-06T23:44:10.021Z',
' __v ': 0,
},
];
http://localhost:4000/cars/findAll/name?offset=0&limit=2&sort=-1&name=Ferrari GET: Esta ruta muestra todos los autos que se encuentran en la base de datos segun la busqueda provista, además puede ordenar por precio, también puede ponerle un límite de la cantidad de autos que desea, como así también cuantos desea saltar
//Ejemplo
[
{
" _id: '62c61e494c3e1ced7a851c8a',
"name": 'ferrari',
"price": 2502448,
"description":
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
"images": [
{
"name": 'auto1.jpg',
"_id": '62c61e494c3e1ced7a851c8b',
},
],
"createdAt": '2022-07-06T23:44:09.993Z',
" __v": 0,
},
{
"_id": '62c61e4a4c3e1ced7a851cbe',
"name": 'ferrari',
"price": 2636816,
"description":
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
"images": [
{
" name": 'auto2.jpg',
"_id": '62c61e4a4c3e1ced7a851cbf',
},
],
"createdAt": '2022-07-06T23:44:10.021Z',
"__v": 0,
},
];
http://localhost:4000/cars/findOneForId/Id GET: Esta ruta muestra un auto según su id
//Ejemplo
{
"_id": '62c61e494c3e1ced7a851c8a',
"name": 'ferrari',
"price": 2502448,
"description":
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
"images": [
{
" name": 'auto1.jpg',
"_id": '62c61e494c3e1ced7a851c8b',
},
],
" createdAt": '2022-07-06T23:44:09.993Z',
"__v": 0,
}
http://localhost:4000/cars/uploads/auto.jpg GET: Esta ruta muestra una imagen en base al nombre con el que se guardó la misma, por defecto las imágenes las trae de la carpeta Uploads
http://localhost:4000/cars/deleteOneForId/Id DELETE:Esta ruta borra un auto por el, id luego como respuesta devuelve el auto que se borró
//Ejemplo de respuesta
{
"_id": "62c61e494c3e1ced7a851c7a",
"name": "pagany",
"price": 9979913,
"description": "Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores",
"images": [
{
"name": "auto1.jpg",
"_id": "62c61e494c3e1ced7a851c7b"
}
],
"createdAt": "2022-07-06T23:44:09.978Z",
"__v": 0
}
http://localhost:4000/cars/updateOneForId/id PUT:Esta ruta actualiza un auto por el, id, luego como respuesta devuelve el auto que se actualizó, se debe enviar un body de lo que se quiere actualizar
//Ejemplo de body
{
"name": "Audi TT",
"price": 123800,
"description": "Consumo de combustible combinado¹: 7,0–6,0 l / 100 km\nEmisiones de CO₂ combinadas¹: 161-137 g / km\n\nDos décadas después de su debut, el Audi TT Coupé sigue cautivando por su característico vocabulario de diseño, su gran placer de conducción y su amplia gama de equipamiento de serie.",
"images": [
{
"name": "e2d9fb9b-a1a4-4e09-9ffc-9d9c1baff3dd.jpg"
},
{
"name": "e2d9fb9b-a1a4-4e09-9ffc-9d9c1baff3dd.jpg"
},
{
"name": "e2d9fb9b-a1a4-4e09-9ffc-9d9c1baff3dd.jpg"
}
]
}
http://localhost:4000/cars/createCar POST: Esta ruta crea uno o varios autos, según el usuario lo prefiera debe tener las imágenes previamente guardadas en la carpeta uploads, o usar el método para guardar las mismas
//Ejemplo body
[
{
' price ': 2502448,
' name ': 'ferrari',
' description ':
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
' images ': [
{
' name ': 'auto1.jpg',
},
],
},
{
' name ': 'ferrari',
' price ': 2636816,
' description ':
'Este es un auto deportivo de primera linea no dude en consultar con nuestros asesores',
' images ': [
{
' name': 'auto2.jpg',
},
],
},
];
http://localhost:4000/cars/files POST:Esta ruta sirve para subir muchas fotos en la carpeta Uploads, internamente utiliza la librería multer para facilitar esta tarea, si quiere probar esta ruta individualmente con postman, el body tiene que ser del tipo from data el key tiene que ser files y cargar la imagen que desea claro esta si quiere hacerlo únicamente desde el back
Las funciones de borrado de usuarios y edición se les puede dar uso solamente desde el back-end, como así también la búsqueda de usuarios, a las claves de los usuarios se les aplicó un hash, para mayor seguridad .
http://localhost:4000/users/findAll?limit=0&offset=0 GET: Esta ruta busca todos los usuarios en la base de datos, tambien puede traer un solo usuario o saltar usuarios.
[
{
'_id ': '62c61e9e4c3e1ced7a851d09',
'username ': 'Matuzay32',
'email ': '[email protected]',
'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
'__v ': 0,
},
{
'_id ': '62c625284c3e1ced7a851d52',
'username ': 'Matuzay323',
'email ': '[email protected]',
'password ': '$2b$10$85piqdW5SepqIbZoOLnfb.pRmx/lFP10rLHuy7jDEx4bdcT43ZCye',
'__v ': 0,
},
];
http://localhost:4000/users/findAll/[email protected]&limit=0&offset=0 GET: Esta ruta busca todos los usuarios en la base de datos, tanto por nombre como por email, si quiere un usuario en especifico conviene hacer una búsqueda por mail
[
{
'_id ': '62c61e9e4c3e1ced7a851d09',
'username ': 'Matuzay32',
'email ': '[email protected]',
'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
'__v ': 0,
},
];
http://localhost:4000/users/findOneForId/ID GET: Esta ruta busca un usuario en especifico por ID
{
'_id ': '62c61e9e4c3e1ced7a851d09',
'username ': 'Matuzay32',
'email ': '[email protected]',
'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
'__v ': 0,
},
http://localhost:4000/users/deleteOneForId/ID DELETE: Esta ruta borra un usuario en especifico por ID
devuelve el usuario borrado
{
'_id ': '62c61e9e4c3e1ced7a851d09',
'username ': 'Matuzay32',
'email ': '[email protected]',
'password ': '$2b$10$ZHTdRrGc6Lc/iHN9j6A/AuzxNBvNwB6uxMHI9cr24wQxycSMt5K0O',
'__v ': 0,
},
http://localhost:4000/users/updateOneForId/ID PUT: Esta ruta actualiza un usuario en especifico por ID
body del usuario a actualizar
{
'username ': 'userActualizado',
"password": "passActualizada",
'email ': '[email protected]',
},
http://localhost:4000/users/createUser POST: Esta ruta crea un usuario en especifico
body del usuario a actualizar
{
"username": "eze12345",
"password": "Matuzay32",
"email": "[email protected]"
}
http://localhost:4000/users/login POST: Esta ruta sirve para loguear un usuario en específico
Respuesta un token este token es el que se tiene que usar en la cabecera
{
"message": "You are now authenticated",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ik1hdHV6YXkzMiIsImVtYWlsIjoiZXplQGdtYWlsLmNvbSIsIl9pZCI6IjYyYzYxZTllNGMzZTFjZWQ3YTg1MWQwOSIsImlhdCI6MTY1NzQ5MTEyNCwiZXhwIjoxNjU3NDk0NzI0fQ.GjJlM9bwKLjQVRhYJoWSQ4Bg4M6S8gcIjcOvfR6QBLc"
}
- Ezequiel Rey - [[email protected]]