¿Cómo construir un backend para Elixir?
En este tutorial, aprenderás cómo construir un backend para Elixir utilizando Back4App.
Recorreremos la integración de características esenciales de Back4App, como la gestión de bases de datos, funciones de Cloud Code, APIs REST y GraphQL, autenticación de usuarios y consultas en tiempo real (Live Queries), para crear un backend seguro, escalable y robusto.
Elixir, que se ejecuta en la máquina virtual Erlang (BEAM) y aprovecha OTP (Erlang OTP), es conocido por su entorno tolerante a fallos y concurrente, que se combina bien con Back4App para formar una infraestructura moderna y de alto rendimiento.
Verás cómo la configuración rápida de Back4App y su entorno intuitivo pueden reducir drásticamente tu tiempo y esfuerzo en comparación con la configuración manual de servidores y bases de datos.
Esto incluye aprovechar el patrón de coincidencia, además de conectarse al marco web de elección de Elixir.
Al final de este tutorial, tendrás una base sólida que podrás extender a una aplicación lista para producción o mejorar con lógica personalizada y APIs de terceros.
Para completar este tutorial, necesitarás:
- Una cuenta de Back4App y un nuevo proyecto de Back4App Comenzando con Back4app. Si no tienes una cuenta, puedes crear una gratis. Sigue la guía anterior para preparar tu proyecto.
- Entorno de desarrollo básico de Elixir Asegúrate de tener Elixir instalado en tu máquina. Si planeas usar un marco web como Phoenix, consulta la guía de instalación de Phoenix como referencia.
- Familiaridad con los conceptos de Elixir Documentación oficial de Elixir. Si eres nuevo en Elixir, revisa estos recursos o un tutorial para principiantes antes de comenzar.
Asegúrate de tener todos estos requisitos previos en su lugar antes de comenzar. Tener tu proyecto de Back4App configurado y tu entorno local de Elixir listo te ayudará a seguir más fácilmente.
El primer paso en cómo construir un backend para Elixir en Back4App es crear un nuevo proyecto. Si aún no has creado uno, sigue estos pasos:
- Inicia sesión en tu cuenta de Back4app.
- Haz clic en el botón “Nueva App” en tu panel de Back4App.
- Dale un nombre a tu app (por ejemplo, “Elixir-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Una vez que se crea el proyecto, lo verás listado en tu panel de control de Back4App. Este proyecto será la base para todas las configuraciones de backend discutidas en este tutorial.
Back4App utiliza la plataforma Parse como base. Para Elixir, no hay un SDK oficial de Parse en este momento. En su lugar, puedes conectarte fácilmente a Back4App utilizando las APIs REST o GraphQL. En tu proyecto de Elixir, deberás:
- Recupera tu ID de Aplicación y Claves REST o GraphQL desde la sección “Configuración de la App” o “Seguridad y Claves” en el panel de control de Back4App.
Por ejemplo, para almacenar credenciales en un archivo de configuración (config/dev.exs o similar):
Luego puedes hacer referencia a estas credenciales en tu código para realizar llamadas REST. A lo largo de esta guía, mostraremos cómo interactuar con la base de datos de Back4App, el sistema de usuarios y otras características utilizando solicitudes HTTP o GraphQL estándar.
En Back4App, los datos se almacenan en clases. Puedes crear una nueva clase en el panel de control de Back4App:
- Navega a la sección “Base de datos” en tu panel de control de Back4App.
- Crea una nueva clase (por ejemplo, “Todo”) y añade columnas relevantes, como título (String) y estáCompleto (Boolean).
![Crear nueva clase Crear nueva clase](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4App también proporciona un Agente de IA para ayudarte a describir y crear tu modelo de datos:
- Abre el Agente de IA desde tu panel de control de la aplicación o el menú.
- Describe tu modelo de datos en lenguaje sencillo (por ejemplo, “Por favor, crea una nueva aplicación Todo con un esquema de clase completo.”).
- Deja que el Agente de IA cree el esquema automáticamente.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Dado que Elixir no tiene un SDK de Parse oficial, omitiremos el uso directo del SDK. En su lugar, mostraremos REST, GraphQL, y Consultas en vivo enfoques a continuación.
Instala un cliente HTTP como HTTPoison en tu mix.exs:
Luego, ejecuta mix deps.get.
Para crear (guardar) un objeto Todo desde tu aplicación Elixir:
Y para consultar tus objetos Todo:
También puedes interactuar a través de GraphQL. Por ejemplo, creando un Todo:
En Elixir, también podrías enviar esto con un cliente HTTP:
Para actualizaciones en tiempo real, Back4App ofrece Consultas en Vivo. Puedes habilitar Consultas en Vivo en la Configuración del Servidor. Dado que no hay una biblioteca de cliente Parse nativa para Elixir en este momento, normalmente te conectarías a través de un canal de Phoenix o cualquier cliente WebSocket personalizado al wss://YOUR_SUBDOMAIN_HERE.b4a.io punto final. Esto puede ser más avanzado, requiriendo codificación personalizada para manejar suscripciones, mensajes, etc.
Back4App ofrece Listas de Control de Acceso (ACLs) y Permisos a Nivel de Clase (CLPs) para proteger y gestionar el acceso a los datos. Las ACLs se aplican a objetos individuales, mientras que los CLPs se aplican a toda la clase.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Permisos a Nivel de Clase (CLPs): En tu panel de Back4App, bajo Base de Datos, selecciona una clase (por ejemplo, “Todo”) y abre la pestaña de Permisos a Nivel de Clase. Ajusta la configuración (por ejemplo, “Requiere Autenticación” o “Sin Acceso” para el público).
- Configurar ACLs: Al crear o actualizar un objeto, puedes enviar datos de ACL en tu solicitud REST o GraphQL. Por ejemplo, especifica el _ACL campo en JSON si necesitas un control detallado por objeto.
![Editar ACL Editar ACL](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
Para más información, visita las Directrices de Seguridad de la Aplicación.
Cloud Code te permite ejecutar lógica del lado del servidor sin gestionar tus propios servidores. Con Elixir, normalmente confías en OTP para la concurrencia, pero aquí puedes simplemente crear Cloud Code en JavaScript en Back4App para manejar validaciones, disparadores o lógica de negocio personalizada. Este código se ejecuta en Parse Server, por lo que puedes mantener tu código de Elixir enfocado en tareas de cliente o microservicio mientras el trabajo pesado ocurre en Cloud Code.
En tu main.js en el panel de Back4App o usando la CLI:
Despliega a través de la Back4app CLI o pegando en el panel bajo Cloud Code > Functions y haciendo clic en Deploy.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Desde Elixir, podrías usar:
Back4App utiliza la clase User para la autenticación. Puedes gestionar el registro, inicio de sesión y restablecimiento de contraseñas fácilmente. Desde Elixir, normalmente usarás llamadas REST:
Back4App soporta la integración con Google, Apple, Facebook y más. En la mayoría de los casos, dirigirás a los usuarios al flujo de OAuth, luego usarás los tokens devueltos por estos proveedores para completar el inicio de sesión en Parse. Consulta Documentación de Inicio de Sesión Social para más detalles.
Back4App almacena archivos de forma segura. Desde Elixir, puedes subir archivos a través de REST:
Recibirás una respuesta JSON con la URL del archivo, que puedes almacenar en una clase (por ejemplo, Foto) para referencia.
Puedes configurar quién puede subir archivos en fileUpload configuraciones en tu proyecto de Back4App, restringiendo las subidas a usuarios autenticados si lo deseas.
La verificación de correo electrónico asegura que los usuarios posean la dirección de correo electrónico utilizada durante el registro. El restablecimiento de contraseña les permite recuperar cuentas de manera segura. Ambas funciones están integradas en Back4App.
- Habilitar la verificación de correo electrónico en la “Configuración de la aplicación” o “Autenticación” de su aplicación.
- Configurar el Dirección de envío y las plantillas de correo electrónico.
- Habilitar el restablecimiento de contraseña para permitir que los usuarios restablezcan a través de un enlace enviado por correo electrónico.
Una vez habilitado en el panel de control, puede activar los restablecimientos de contraseña:
Los trabajos en la nube te permiten automatizar tareas rutinarias como limpiar datos antiguos o enviar correos electrónicos periódicos. Los escribes en Cloud Code.
- Desplegar el código.
- Ir al Panel de Control de Back4app > Configuraciones de la Aplicación > Configuraciones del Servidor > Trabajos en Segundo Plano.
- Programar el trabajo para que se ejecute diariamente o con la frecuencia que elijas.
![Programación de un Trabajo en la Nube Programación de un Trabajo en la Nube](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Los webhooks permiten que tu aplicación Back4App envíe solicitudes HTTP a un servicio externo (por ejemplo, un canal de Slack o Stripe) cuando ocurren ciertos eventos.
- Navega a la configuración de Webhooks en tu panel de Back4App > Más > Webhooks.
- Establece el endpoint (por ejemplo, https://your-service.com/webhook-endpoint).
- Configura los triggers como “Nuevo registro en la clase Todo.”
![Añadiendo un Webhook Añadiendo un Webhook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Si deseas enviar datos a Slack cada vez que se crea un Todo, puedes agregar un nuevo webhook apuntando a la URL de tu webhook entrante de Slack. También puedes definir Webhooks en Cloud Code enviando solicitudes HTTP personalizadas en triggers como afterSave.
![WebHook BeforeSave WebHook BeforeSave](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
La Aplicación de Administración de Back4app es una interfaz fácil de usar para gestionar tus datos. Puedes habilitarla desde Panel de la Aplicación > Más > Aplicación de Administración.
![Habilitar Aplicación de Administración Habilitar Aplicación de Administración](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
- Crear un Primer Usuario Administrador, que configura el rol de B4aAdminUser y clases adicionales.
- Asignar un Subdominio para acceder a la interfaz de administración.
- Iniciar sesión para ver y gestionar datos en una interfaz simple.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
Al seguir este tutorial sobre cómo construir un backend para Elixir con Back4App, has:
- Creado un backend seguro en la plataforma de Back4App utilizando Elixir para la integración.
- Configurado una base de datos con clases, tipos de datos y relaciones.
- Usado REST/GraphQL para interactuar con tus datos desde Elixir.
- Aplicado seguridad utilizando ACLs y CLPs.
- Añadido lógica personalizada con funciones de Cloud Code.
- Configurado la autenticación de usuarios con verificación de correo electrónico y restablecimiento de contraseñas.
- Manejado el almacenamiento y recuperación de archivos.
- Programado trabajos en segundo plano para automatización.
- Integrado servicios externos con webhooks.
- Explorado el Panel de Administración de Back4App para una fácil gestión de datos.
Con el modelo de concurrencia de Elixir (impulsado por la máquina virtual Erlang) y OTP, combinado con los servicios escalables y flexibles de Back4App, puedes construir backends altamente robustos.
Continúa explorando características más avanzadas, integra tu lógica de negocio y deja que Back4App te ayude a manejar el trabajo pesado.
- Construir una aplicación Elixir lista para producción combinando este backend con tu marco web Elixir/Phoenix preferido.
- Integrar características avanzadas como control de acceso basado en roles o APIs de terceros (pasarelas de pago, servicios de mensajería).
- Explorar la documentación oficial de Back4app para seguridad avanzada, registros, ajuste de rendimiento y más.
- Revisar otros tutoriales para aplicaciones en tiempo real, paneles de IoT o servicios basados en ubicación. Con la coincidencia de patrones y la concurrencia de OTP a tu disposición, ¡estás equipado para abordar una amplia gama de aplicaciones!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)