API with Express, Mongoose & MongoDB

API with Express, Mongoose & MongoDB

Cuando queremos tener una arquitectura desacoplada o, cuando necesitamos tener un acceso programático a nuestro producto y/o servicio, lo más normal y común es tener un servicio de API. Concretamente una API RESTful para, por ejemplo, poder ofrecer servicios como:

  • GET para consultar y leer,
  • POST para crear,
  • PUT para editar y
  • DELETE para eliminar.

Bien, uno de los lenguajes más famosos y, recomendable, para poder construir nuestra API RESTful es NodeJS y más concretamente su Framework Express que nos proporciona muchas herramientas útiles para poder organizar nuestra aplicación.

Aunque una API RESTful no es nada sin tener, detrás, una base de datos que proceses sus peticiones y a poder ser, una base de datos que tenga la performance suficiente para poder cubrir el servicio. Es por eso que nuestra recomendación es MongoDB, aunque, no conectaremos directamente a la base de datos, tendremos un “gateway” que hará la gestión de la misma: Mongoose.

Mongoose es una biblioteca ODM (Object Data Modeling) para NodeJS y MongoDB y que, a su vez, nos facilita la estructura de los esquemas en MongoDB, por ejemplo, no deberemos preocuparnos para conocer la lógica de negocio y será nuestro middleware, conociendo así tanto los complementos, como los distintos objetos y realizando la validación de los esquemas. Veamos un esquema de nuestra futura arquitectura:

API with Express, Mongoose & MongoDB

Escalar la base de datos con MongoDB Atlas

Sabemos que uno de los cuellos de botella de nuestras aplicaciones y/o productos son las bases de datos, sabemos también que gracias al Cloud tenemos muchas soluciones a nuestro alcance, con precios realmente competitivos, que nos van a permitir solucionarlo. En el caso de MongoDB no es menos, gracias a MongoDB Atlas podremos tener una base de datos MongoDB, autogestionada, con las mejores prácticas operativas y de seguridad incorporadas. Es realmente una opción muy interesante para poder dotar, por ejemplo en el caso de hoy, una base de datos para nuestra API RESTful.

MongoDB Atlas Dashboard

Seguridad en API RESTful con API Gateway Kong

En el momento de aplicar seguridad a nuestra API, naturalmente que nuestro proveedor de Cloud nos dará unas cuantas herramientas, pero, un buen método es API Gateway Kong, que ya hemos hablado con anteriorad. Según como lo hagamos, podríamos aplicar una seguridad mediante Security Group (básica) por ejemplo en un entorno AWS y dejar, entonces, que un ELB (Elastic Load Balancer) gestione y ordener las peticiones hacia nuestra API; también, podemos implementar un servicio de API Gateway Kong, construido como microservicio y con una capacidad de escalar horizontalmente al agregar más nodos.

API Gateway Kong Schema

La editorial de la UOC siempre dispone de buenos libros que nos ayudan en nuestro día a día, hoy recomendamos el libro de Antonio Sarasa: Introducción a las bases de datos. Nosql usando MongoDB.

NOTA: Recuerda que si pulsas en el enlace del libro, me gano una pequeña comisión sin que a ti te cueste nada extra y me estarás ayudando con los costes de mantenimiento del Blog.

Comentarios, opiniones y valoración: Si has nacido con un MongoDB bajo el brazo, me gustaría saber qué tienes que decir a través de las redes sociales.

Autor: Joakim Vivas

comments powered by Disqus