Montar un API REST con NodeJs y Express


En esta entrada vamos a aprender a montar un API REST para nuestra aplicación Web de forma rápida y muy sencilla junto con NodeJs y el módulo Express.js.

Por si aún no conoces NodeJs, la popular tecnología del lado del servidor en Javascript, deberías pasarte por esta entrada Qué es NodeJs y porqué deberías estar usándo

Por su parte, el Express.js (o simplemente Express) es uno de los módulos más conocidos de Nodejs. Express es un framework Open Source ligero que nos proporciona muchas herramientas útiles para organizar nuestra aplicación.

Diseñando nuestro API REST

En primer lugar, vamos a esbozar un diseño de una API REST simple, que represente las operaciones que podríamos tener en una aplicación Web real.

Esto se traduce en que tenemos interés en realizar operaciones CRUD (Create, Read, Update, Delete) sobre un repositorio de datos, que normalmente será una base de datos (MSSQL, MySQL, MariaDB, MongoDB), o cualquier otro (ficheros, etc).

Para mapear cada operación ofrecida por nuestra API REST empleamos una combinación entre tipos de solicitudes HTTP, parámetros en la URL, parámetros de Query, y parámetros en el body de la petición.

La siguiente tabla muestra las funciones disponibles en nuestro API REST de ejemplo, la equivalencia a funciones, y los parámetros que recibe cada petición.

OperaciónFunciónPeticiónUrlParameters
URLQueryBody
ReadGetAllGET./items
GetFilteredGET./items?filter=ABCFilter
GetByIdGET./idId
CreateAddPOST./itemsItem
UpdateUpdateByIdPUT./itemsId, Item
DeleteDeleteByIdDELETE./items/idId

Creando nuestro API REST

Creamos una carpeta dentro de nuestra carpeta de proyectos que llamaremos, por ejemplo, ApiRest. Ahora instalamos el módulo Express.js. Para ello, desde la consola de comandos, nos desplazamos al directorio que hemos creado previamente y escribimos

Una vez finalizado la instalación de Express, creamos un nuevo fichero que llamaremos, por ejemplo, App.js. Dentro de este fichero copiamos el siguiente contenido

Finalmente, ejecutamos la aplicación con el siguiente comando,

Y comprobamos que se ejecuta correctamente.

Expliquemos nuestro código API REST

Vamos a explicar el código anterior. En primer lugar, hemos cargado los módulos necesarios, y creado una aplicación de Express.

En el resto del código, estamos definiendo distintas rutas para nuestra aplicación, según la definición que hemos hecho en el apartado anterior.

En estas funciones, empleamos el objeto ‘request’ para obtener los parámetros que hemos pasado al API en la petición. En función del tipo de request, usamos la propiedad oportuna (params, query o body).

Por otro lado, empleamos el objeto ‘response’ para devolver los resultados al cliente. En este ejemplo, simplemente estamos devolviendo un texto informando de que la petición correspondiente se ha recibido correctamente.

Obviamente, este es un ejemplo muy sencillo. En una aplicación real se realizarían consultas a una base de datos, operaciones con los datos, validaciones, etc etc. Pero es suficiente para mostrar los aspectos fundamentales necesarios para crear un API REST.

Finalmente, en el último bloque de código iniciamos la aplicación poniéndola a escuchar peticiones en localhost, puerto 80.

Probando nuestro API REST

Toca probar nuestro API REST de ejemplo. Para ello emplearemos el programa Postman. Si aún no has usado Postman te recomendamos que mires la entrada Postman, realiza peticiones HTTP y prueba tus API REST.

En cada petición tenemos los parámetros que se empleados, y una imagen de la petición en Postman (hacer click en la imagen para ampliar), para que podáis probar vosotros el API REST de ejemplo.

GetAll

Es una simple petición GET a la URL localhost:8080

GetFiltered

Petición GET a localhost/items?filter=XXX:8080

GetById

Petición GET a localhost/items/dd:8080

Add

Petición POST a localhost/items, y en el body pasaríamos un objeto codificado como Json. En el ejemplo, simplemente mandamos un texto dentro de la propiedad “data”. En una aplicación real mandaríamos un objeto con las propiedades oportunas.

UpdateById

Petición PUT a localhost/items, y en el body pasaríamos el Id a reemplazar y el objeto codificado como Json.

DeleteById

Petición DELETE a locahost/items/id

Previous Librería Arduino Timeout Task
Next Torreta servo 2-DOF controlada por Arduino

¡Deja un comentario!...

avatar
1000
wpDiscuz