https://d226lax1qjow5r.cloudfront.net/blog/blogposts/using-vonage-with-mongodb-atlas-part-1/mongodb_vonage_p1.png

Uso de las API de Vonage con MongoDB Atlas - Parte 1

Publicado el April 25, 2023

Tiempo de lectura: 6 minutos

Desarrollar Applications es difícil. No sólo están los requisitos básicos de la propia aplicación, sino que siempre hay problemas comunes que resolver, como la autenticación de usuarios, la gestión de la base de datos y dónde se aloja todo esto. En 2023 estamos casi mimados con la cantidad de servicios que pueden ayudar a resolver estos problemas, pero todo esto debe reunirse dentro de una aplicación. Una solución que ha aparecido es MongoDB Atlas, un conjunto de productos diseñados para ayudar a los desarrolladores a crear sus aplicaciones rápidamente y resolver muchos problemas comunes.

¿Qué es MongoDB Atlas?

MongoDB Atlas es un servicio de base de datos alojado en la nube que pueden utilizar varios proveedores de alojamiento en la nube. Esto significa que puede alojar su base de datos en varias regiones y en AWS, Azure y Google Cloud Platform para disponer de disponibilidad en varias nubes. Dado que las bases de datos están alojadas en la nube, se puede ampliar o reducir la escala a petición. Para los desarrolladores, libera mucho tiempo administrativo al permitir que MongoDB gestione toda la infraestructura mientras los desarrolladores pueden centrarse en sus aplicaciones.

MongoDB Atlas le permite configurar clusters MongoDB. Si no está familiarizado con MongoDB, se trata de una plataforma basada en documentos base de datos NoSQL basada en documentos. A diferencia de un sistema tradicional de gestión de bases de datos relacionales (RDMS), MongoDB almacena la información como documentos de tipo JSON en los que se pueden realizar búsquedas. Tiene capacidades relacionales limitadas y se centra más en datos ligeramente estructurados que en arquitecturas tabulares de filas y columnas. Los documentos se agrupan en "colecciones", que sustituyen a la arquitectura de tablas estándar. Los documentos de una colección pueden compartir un esquema común, como una tabla RDMS, pero también pueden cambiar su estructura.

{
 "_id": ObjectId("6413733ba623c618c2fab2d9"),
 "name": "Hamburger",
 "price": 995
}

Las bases de datos NoSQL, como su nombre indica, no utilizan SQL para consultar información. MongoDB utiliza una sintaxis de consulta similar a JSON para buscar documentos que coincidan con los criterios. Por ejemplo, en lugar de utilizar algo como SELECT * FROM users WHERE admin = truese utilizaría la siguiente sintaxis:

db.users.find({
 admin: {
 $eq: true
 }
})

Muchos desarrolladores prefieren utilizar una base de datos NoSQL por la libertad del diseño de documentos sin esquema. No hay grandes migraciones, ya que se pueden añadir nuevas "columnas" a los documentos añadiéndolas a documentos nuevos o existentes. Se puede definir un esquema si se desea, pero en gran medida sólo ayuda al motor de la base de datos a filtrar los datos en conjuntos de datos más grandes.

MongoDB Atlas también aporta algunas funciones adicionales que los desarrolladores pueden utilizar para crear sus aplicaciones sobre la sólida base de datos NoSQL que aporta MongoDB. Esto forma parte de su capa "App Service", que añade autenticación de usuarios, un tiempo de ejecución de funciones sin servidor, una pasarela y un enrutador de API asociados, acceso automático a datos GraphQL y HTTPS, y un servicio de sincronización de datos de dispositivos llamado MongoDB Realm.

Esto significa que un desarrollador puede empezar a desarrollar su aplicación de inmediato sin tener que juntar un montón de servicios dispares y puede centrarse en los problemas de negocio que resuelve la aplicación, no afeitarse la proverbial yaca sobre cómo hacer la autenticación de usuarios o cómo desplegar código. Atlas y sus App Services pueden hacer gran parte de ese trabajo pesado para un desarrollador.

¿Qué pensamos hacer?

En la siguiente serie de artículos, vamos a caminar a través de la construcción de una aplicación que utiliza MongoDB Atlas y un conjunto de APIs de comunicaciones de Vonage. La aplicación de demostración tomará la forma de un simple sitio web de un restaurante y un backend asociado. Mostraremos:

  • Cómo integrar Vonage Verify con un inicio de sesión de usuario

  • Cómo usar Vonage Messages para enviar una confirmación de pedido

  • Cómo usar Vonage Meetings para la resolución de problemas

  • Cómo utilizar In-App Messaging para enviar notificaciones a los usuarios "administradores".

También ayudaremos a los promotores a instalarse:

  • Un clúster MongoDB Atlas y App Service asociado

  • Hacer que una aplicación front-end se comunique con MongoDB Atlas a través de Realm

  • Autenticación de usuarios con MongoDB Users

Aunque iremos desgranando cómo funciona todo esto con el tiempo, no dudes en echar un vistazo rápido al código fuente de la aplicación en el código fuente en GitHub.

Requisitos previos

Configurar una aplicación de Vonage

Nuestras Messages, Verify e In-App Messaging API están respaldadas por una aplicación de Vonage, un conjunto de datos de configuración que pueden agruparse. Una vez que hayas ingresado a tu cuenta de desarrollador, ve a la página Applications y crea una nueva aplicación. Dale a tu aplicación un nombre como MongoDB Demoy haz clic en Generar clave pública y privada. Esto creará las claves de autenticación que usaremos en los SDKs.

Creating a Vonage applicationName and Secret Keys

Ahora desplácese hacia abajo, y podemos convertir algunas capacidades diferentes. Necesitaremos Mensajes, RTC (In-app voice & messaging)y la Meetings API. Active cada una de estas funciones. Mensajes y RTC necesita algunas URLs de callback que no utilizaremos por el momento, así que introduce https://example.com para esas URLs que son necesarias. Reuniones puede permanecer en blanco. Una vez hecho todo esto, haga clic en "Generar nueva solicitud".

Messages API CapabilityMessages API Capability

RTC API CapabilityRTC API Capability

Meetings API CapabilityMeetings API Capability

Dado que estamos utilizando la Messages APInecesitaremos vincular un número de teléfono a nuestra aplicación. Este número se utilizará más adelante para enviar SMS. Las cuentas de desarrollador ya deberían tener un número disponible, así que haz clic en el botón "Vincular" para adjuntarlo a esta aplicación.

Configurar MongoDB Atlas

Ahora que tenemos la parte de Vonage vamos a configurar la base de datos en MongoDB Atlas. La primera vez que inicies sesión en tu Account, se te pedirá que despliegues tu base de datos. Debemos configurar alguna información de alojamiento ya que este es un plan alojado. Afortunadamente el sistema MongoDB Atlas tiene un nivel gratuito muy generoso. Sólo tienes que seleccionar el nivel M0 para alojar nuestra base de datos. Es lo suficientemente potente como para que podamos jugar con ella en nuestra demostración. La única otra cosa que necesitarás hacer es añadir un Nombre para el cluster de base de datos. Para este demo, lo he llamado VonageDemo. Si lo deseas, puedes cambiar el proveedor de alojamiento o la Región, pero por ahora, puedes dejarlos en los valores predeterminados de "AWS" y "N. Virgina (us-east-1)". Haz clic en Crear para continuar.

Database Cluster SettingsDatabase Cluster Settings

Necesitaremos configurar la autenticación ya que accederemos al cluster MongoDB a través de internet. Podemos utilizar Nombre de usuario y contraseña para nuestra demostración, ya que es el más fácil de poner en marcha. Se rellenará un nombre de usuario y una contraseña. Siéntete libre de cambiarlos. Anota la contraseña para más tarde; la necesitaremos para autenticarnos en MongoDB. Cuando hayas terminado, pulsa Crear Usuario.

MongoDB Cluster AuthenticationMongoDB Cluster Authentication

Por razones de seguridad, MongoDB Atlas restringe quién puede hablar con tu cluster. Para nuestra demo, puedes seleccionar Mi entorno local. El componente servidor de la demo se conectará directamente al cluster, por lo que necesitaremos permitirle el acceso al cluster. Por defecto, añade tu dirección IP pública a la lista. Esto está bien para ejecutar la demo localmente, pero si vas a desplegar esto en un servidor público, tendrás que añadir la dirección IP de ese servidor. Si alojas el servidor en otra máquina, comprueba con tu proveedor de alojamiento cuál es tu dirección IP pública. Si alojas la demo en un proveedor en la nube como AWS o Google Cloud Platform, puedes seleccionar Entorno en la nube y proporcionar los detalles apropiados. Haga clic en Finalizar y Cerrar para finalizar.

MongoDB Security SettingsMongoDB Security Settings

Tu clúster MongoDB Atlas ya está configurado. Puedes administrar el clúster a través del navegador, incluyendo la visualización de los documentos almacenados. El panel de control también tiene instrucciones para conectarse a través del plugin MongoDB VSCode plugin para acceder a la base de datos directamente en tu IDE.

MongoDB DashboardMongoDB Dashboard

Próximos pasos

En la siguiente parte, añadiremos algunos datos de muestra a nuestro clúster MongoDB y veremos cómo configurar la aplicación de demostración para que se ejecute. Mientras tanto, no dudes en echar un vistazo al panel de MongoDB Atlas y al panel de Vonage para ver los diferentes servicios que ofrecen ambas compañías.

Compartir:

https://a.storyblok.com/f/270183/384x384/3bc39cbd62/christankersley.png
Chris TankersleyGestor de herramientas de relaciones con los desarrolladores

Chris es el director de herramientas de relaciones con los desarrolladores y dirige el equipo que crea sus herramientas favoritas. Lleva más de 15 años programando en varios lenguajes y tipos de proyectos, desde trabajos para clientes hasta sistemas de big data a gran escala. Vive en Ohio, donde pasa el tiempo con su familia y jugando a Video y TTRPG.