API Rest construida con NodeJS y MongoDB e implementada en Azure para el proyecto de Aplicaciones Moviles II (iOS).
A continuación se describen las rutas que emplearemos, recomiendo probarlas en la aplicación POSTMAN
La ruta base del proyecto es:
https://fakebucks.azurewebsites.net/api
Para comprobar que el servidor esta oyendo las peticiones que realizamos se puede testear haciendo una peticion GET al siguiente endpoint:
https://fakebucks.azurewebsites.net/api/test
Deberia mostrar lo siguiente como respuesta:
{
"success": true,
"mensaje": "Api a la espera de peticiones!!"
}
Para autenticar un usuario en la aplicación se deberá hacer una petición POST al siguiente endpoint:
https://fakebucks.azurewebsites.net/api/usuarios/login
Enviando en el cuerpo de la peticion los parametros correo y clave.
- Si se realiza la autenticación exitosamente, el cuerpo de la respuesta sera el siguiente.
{
"success": true,
"mensaje": "Usuario Autenticado",
"usuario": {
"_id": "5b09ccba75396136dc2da8bf",
"dni": "70417573",
"nombre": "Miguel",
"apellido": "Cortegana",
"direccion": "Comas",
"correo": "mcortegana93@gmail.com",
"clave": "12345",
"__v": 0
}
}
- Si las credenciales son invalidas, el cuerpo de la respuesta será el siguiente:
{
"success": false,
"mensaje": "Credenciales incorrectas"
}
Para registrar un nuevo usuario la petición POST deberá apuntar al endpoint:
https://fakebucks.azurewebsites.net/api/usuarios
Deberemos enviar los atributos dni, nombre, apellido, direccion, correo y clave en el cuerpo de la petición.
El cuerpo de la respuesta al registrar un nuevo usuario sera:
{
"success": true,
"mensaje": "Registro exitoso",
"usuario": {
"_id": "5b0e607b8d47ae2688892f62",
"dni": "54128521",
"nombre": "Jane",
"apellido": "Doe",
"direccion": "Comas",
"correo": "jane-doe@gmail.com",
"clave": "45612",
"__v": 0
}
}
Para listar todos los productos realizar una peticion GET al siguiente endpoint:
https://fakebucks.azurewebsites.net/api/products/all
Para listar las categorias existentes, realizar una petición GET al siguiente endpoint
https://fakebucks.azurewebsites.net/api/products/categories
{
"success": true,
"mensaje": null,
"result": [
{
"_id": "5b1cbbec36d4773e4c83ea3c",
"categoria": "Bebidas"
},
{
"_id": "5b1cbc0c36d4773e4c83ea3d",
"categoria": "Alimentos"
}
]
}
Para listar las subcategorias existentes, realizar una petición GET al siguiente endpoint
https://fakebucks.azurewebsites.net/api/products/types
{
"success": true,
"mensaje": null,
"result": [
{
"_id": "5b1cedf036d4773e4c83eb1f",
"tipo": "Bebidas de Temporada",
"categoria": {
"_id": "5b1cbbec36d4773e4c83ea3c",
"categoria": "Bebidas"
}
},
{
"_id": "5b1cedf036d4773e4c83eb20",
"tipo": "Bebidas A Base De Espresso",
"categoria": {
"_id": "5b1cbbec36d4773e4c83ea3c",
"categoria": "Bebidas"
}
},
{
"_id": "5b1cedf036d4773e4c83eb21",
"tipo": "Frappuccino",
"categoria": {
"_id": "5b1cbbec36d4773e4c83ea3c",
"categoria": "Bebidas"
}
},
{
"_id": "5b1cedf036d4773e4c83eb22",
"tipo": "Alternativas Al Cafe",
"categoria": {
"_id": "5b1cbbec36d4773e4c83ea3c",
"categoria": "Bebidas"
}
},
{
"_id": "5b1cedf036d4773e4c83eb23",
"tipo": "Novedades",
"categoria": {
"_id": "5b1cbc0c36d4773e4c83ea3d",
"categoria": "Alimentos"
}
},
{
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": {
"_id": "5b1cbc0c36d4773e4c83ea3d",
"categoria": "Alimentos"
}
},
{
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": {
"_id": "5b1cbc0c36d4773e4c83ea3d",
"categoria": "Alimentos"
}
}
]
}
Para buscar los productos de una categoria enviar en el body del request POST el id de la categoria mediante un parametro "categoria"
Endpoint: https://fakebucks.azurewebsites.net/api/products/categories
{
"success": true,
"mensaje": null,
"result": [
{
"_id": "5b1cffea36d47744e4fbb0ad",
"nombre": "Chiken Panino",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb23",
"tipo": "Novedades",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0ae",
"nombre": "Muffin",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb23",
"tipo": "Novedades",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0af",
"nombre": "Chicken Ciabatta",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b0",
"nombre": "Capresse Sandwiches",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b1",
"nombre": "Croissant Mixto",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b2",
"nombre": "Triple Pollo Sandwiches",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b3",
"nombre": "Brioche Campesino",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b4",
"nombre": "Panino Vesubio",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b5",
"nombre": "Pavo y Queso",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b6",
"nombre": "Eggmont",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb24",
"tipo": "Sandwiches",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b7",
"nombre": "Cinnamon Roll",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b8",
"nombre": "Muffin de Manzana",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0b9",
"nombre": "Muffin de Naranja y chocochips",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0ba",
"nombre": "Muffin Berries",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0bb",
"nombre": "Croissant francés",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
},
{
"_id": "5b1cffea36d47744e4fbb0bc",
"nombre": "Galleta de avena & pasas",
"imagen": "http://www.mcaproyectos.com/ios/alimentos/muffin.jpg",
"precio": 2,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb25",
"tipo": "Postres",
"categoria": "5b1cbc0c36d4773e4c83ea3d"
}
}
]
}
Para buscar los productos de una subcategoria enviar en el body del request de una peticion POST el id de la subcategoria mediante un parametro "tipo".
Endpoint: https://fakebucks.azurewebsites.net/api/products/types
{
"success": true,
"mensaje": null,
"result": [
{
"_id": "5b1cffea36d47744e4fbb096",
"nombre": "Cappuccino",
"imagen": "http://www.mcaproyectos.com/ios/bebidas/cappuccino.jpg",
"precio": 1.5,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb1f",
"tipo": "Bebidas de Temporada",
"categoria": "5b1cbbec36d4773e4c83ea3c"
}
},
{
"_id": "5b1cffea36d47744e4fbb097",
"nombre": "Manjar Blanco Cappuccino",
"imagen": "http://www.mcaproyectos.com/ios/bebidas/cappuccino.jpg",
"precio": 1.5,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb1f",
"tipo": "Bebidas de Temporada",
"categoria": "5b1cbbec36d4773e4c83ea3c"
}
}
]
}
Para buscar un producto por su ID enviar este como un parametro "id" dentro del body de una peticion POST al endpoint:
https://fakebucks.azurewebsites.net/api/products/id
{
"success": true,
"mensaje": null,
"result": {
"_id": "5b1cffea36d47744e4fbb096",
"nombre": "Cappuccino",
"descripcion": "cafe con leche y espuma de leche",
"imagen": "http://www.mcaproyectos.com/ios/bebidas/cappuccino.jpg",
"precio": 1.5,
"tipo": {
"_id": "5b1cedf036d4773e4c83eb1f",
"tipo": "Bebidas de Temporada",
"categoria": "5b1cbbec36d4773e4c83ea3c"
}
}
}