Quickstarters
Feature Overview
¿Cómo construir un backend para Dart?
25 min
introducción en este tutorial, aprenderás cómo construir un backend para dart utilizando back4app nos centraremos en integrar 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)—en un proyecto basado en dart dado que dart es un lenguaje de programación versátil, puedes usarlo para varios proyectos de backend, desde servidores web simples hasta aplicaciones a gran escala al aprovechar el entorno intuitivo de back4app, podrás configurar rápidamente un marco de backend robusto y seguro sin un mantenimiento pesado del servidor verás cómo características como acls, clps, programación de tareas en segundo plano y creación de lógica personalizada con cloud code optimizan tus operaciones del lado del servidor después de completar este tutorial, estarás listo para escalar tu backend de dart o agregar integraciones más avanzadas requisitos previos para completar este tutorial, necesitarás una cuenta de back4app y un nuevo proyecto de back4app comenzando con back4app https //www back4app com/docs/get started/new parse app si no tienes una cuenta, puedes crear una gratis entorno de desarrollo básico de dart puedes configurarlo instalando el sdk de dart y cualquier editor de tu elección para más información, consulta obtener el sdk de dart https //dart dev/get dart dart 2 0 o superior asegúrate de que tu entorno esté actualizado, para que puedas aprovechar las características recientes de dart y las bibliotecas del lado del servidor como shelf familiaridad con dart y conceptos de backend si eres nuevo en dart, revisa la documentación oficial de dart https //dart dev/guides para construir fluidez básica asegúrate de tener todos estos requisitos previos en su lugar antes de comenzar tener tu proyecto de back4app listo y tu entorno local de dart correctamente configurado te ayudará a seguir más fácilmente paso 1 – crear un nuevo proyecto en back4app y conectar ¿por qué crear un nuevo proyecto de back4app? un nuevo proyecto de back4app forma la base de tu backend, gestionando tu base de datos, seguridad, apis, almacenamiento de archivos y más te proporciona una estructura organizada para construir tu lógica del lado del servidor basada en dart creando un proyecto de back4app inicia sesión en tu cuenta de back4app haz clic en “nueva app” en el panel de control de back4app dale a tu app un nombre descriptivo (por ejemplo, “dart backend tutorial”) una vez creado, su proyecto aparecerá en el panel de control de back4app este proyecto es donde configurará todos los ajustes de backend para su aplicación dart instalar el sdk de parse y conectar aunque dart no tiene un sdk de parse oficial, hay bibliotecas mantenidas por la comunidad como parse server sdk que permiten la integración con back4app puede agregarlo incluyendo la siguiente dependencia en el pubspec yaml dependencies parse server sdk ^4 0 0 # example version luego ejecuta dart pub get inicializa parse en tu código dart (por ejemplo, en un main dart archivo) import 'package\ parse server sdk/parse server sdk dart'; future\<void> main() async { const keyapplicationid = 'your application id'; const keyclientkey = 'your javascript key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); // your dart server logic goes here print('parse initialized with back4app!'); } recupera tu application id , javascript key , y parse server url desde el panel de control de back4app (bajo “configuración de la app” > “seguridad y claves”) con este paso, tu aplicación dart puede interactuar de manera segura con tu marco de backend de back4app paso 2 – configuración de la base de datos creando un modelo de datos en el panel de control de back4app, navega a la sección “base de datos” y crea una nueva clase (por ejemplo, “todo”) agrega columnas para tus campos, como title (string) y iscompleted (boolean) creando un modelo de datos usando el agente de ia abre el agente de ia en tu panel de control de la app describe tu esquema deseado (por ejemplo, “por favor, crea una clase todo con campos de título y iscompleted ”) deja que el agente de ia finalice el esquema por ti lectura y escritura de datos usando sdk con la biblioteca parse server sdk, puedes guardar y consultar datos desde tu código dart por ejemplo import 'package\ parse server sdk/parse server sdk dart'; future\<parseobject?> createtodoitem(string title, bool iscompleted) async { final todo = parseobject('todo') set('title', title) set('iscompleted', iscompleted); final response = await todo save(); if (response success && response result != null) { print('todo created ${response result}'); return response result as parseobject; } else { print('error creating todo ${response error? message}'); return null; } } future\<list\<parseobject>?> fetchtodos() async { final query = querybuilder\<parseobject>(parseobject('todo')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { print('error fetching todos ${response error? message}'); return null; } } lectura y escritura de datos usando rest api curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo lectura y escritura de datos usando graphql api mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } trabajando con consultas en vivo (opcional) para habilitar actualizaciones en tiempo real, activa las consultas en vivo en tu panel de control de back4app (configuraciones del servidor) luego puedes suscribirte desde dart, aunque es posible que necesites una biblioteca especializada la biblioteca parse server sdk puede tener soporte parcial para consultas en vivo; consulta su documentación para más detalles paso 3 – aplicando seguridad con acls y clps descripción general acls (listas de control de acceso) restringir lectura/escritura a nivel de objeto clps (permisos a nivel de clase) restringir lectura/escritura a nivel de clase paso a paso permisos a nivel de clase en el panel de control de back4app, abre la sección de base de datos, elige una clase y configura los clps en “seguridad ” acls en código (usando el parse server sdk) future\<parseobject?> createprivatetodo(string title, parseuser owneruser) async { final todo = parseobject('todo') set('title', title); final acl = \<string, dynamic>{}; // grant read/write to the owner acl\[owneruser objectid!] = {"read" true, "write" true}; // disable public read/write acl\[' '] = {"read" false, "write" false}; todo setacl(acl); final response = await todo save(); if (response success && response result != null) { return response result as parseobject; } else { print('error setting acl ${response error? message}'); return null; } } paso 4 – escribiendo funciones de cloud code por qué cloud code cloud code es esencial para crear lógica de negocio personalizada en el lado del servidor te ahorra de gestionar tu propia infraestructura y mantiene tu código seguro y escalable ejemplo de función y disparadores en tu main js (para cloud code) // main js parse cloud define('hellodart', (request) => { return `hello from dart and back4app, ${request params name || 'guest'}!`; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'each todo needs a title!'; } }); despliegue usando el cli de back4app usando el dashboard ve a cloud code > funciones pega tu código en main js haz clic en desplegar npm y cloud code si necesitas módulos npm adicionales para tu cloud code, especifícalos en el package json esto te permite integrar apis externas u operaciones avanzadas directamente desde tu código del lado del servidor paso 5 – configurando la autenticación habilitar la autenticación de usuarios en el dashboard de back4app, puedes habilitar la verificación de correo electrónico o configurar inicios de sesión sociales por defecto, la clase parse user almacena las contraseñas de forma segura ejemplos de código (usando parse server sdk en dart) import 'package\ parse server sdk/parse server sdk dart'; future\<void> signupuser(string username, string password, string email) async { final user = parseuser(username, password, email); final response = await user signup(); if (response success) { print('user signed up ${response result}'); } else { print('error ${response error? message}'); } } future\<void> loginuser(string username, string password) async { final user = parseuser(username, password, null); final response = await user login(); if (response success) { print('user logged in ${response result}'); } else { print('error ${response error? message}'); } } inicio de sesión social configura proveedores como google, apple o facebook en el panel de control de back4app implementa el plugin correspondiente de parse server sdk o un flujo de oauth personalizado si está disponible paso 6 – manejo del almacenamiento de archivos configurando el almacenamiento de archivos back4app aloja automáticamente los archivos que subes a través de las apis de parse puedes almacenar imágenes, documentos o cualquier tipo de archivo ejemplo (dart) consideraciones de seguridad puedes controlar quién puede subir o recuperar archivos ajustando tus clps o roles de usuario en el panel de control de back4app paso 7 – verificación de correo electrónico y restablecimiento de contraseña descripción general la verificación de correo electrónico confirma que los usuarios son propietarios de los correos electrónicos con los que se registran, mientras que los enlaces de restablecimiento de contraseña proporcionan una forma segura de gestionar credenciales perdidas configuración del panel de control de back4app ir a configuración de la aplicación > correo electrónico habilitar verificar correos electrónicos de usuarios y restablecimiento de contraseña personaliza tus plantillas de correo electrónico según sea necesario implementación cuando los usuarios se registran utilizando un correo electrónico válido, reciben un enlace de verificación de correo electrónico para restablecimientos de contraseña, llama al método requestpasswordreset de parseuser (si está disponible en el parse server sdk) o al punto final rest paso 8 – programación de tareas con trabajos en la nube qué hacen los trabajos en la nube los trabajos en la nube te permiten programar tareas a intervalos establecidos, como limpiar registros antiguos o enviar informes periódicos operan en segundo plano, independientemente de las acciones desencadenadas por el usuario ejemplo en main js , añade parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); programación ir a configuración de la aplicación > configuración del servidor > trabajos en segundo plano programar cleanupoldtodos para que se ejecute diariamente o en un intervalo que elijas paso 9 – integrando webhooks definición los webhooks permiten que tu aplicación back4app realice solicitudes http a un servicio externo en ciertos eventos esto es útil para integrarse con servicios de terceros como slack o stripe configuración ir a más > webhooks en tu panel de back4app hacer clic en agregar webhook y proporcionar un endpoint (por ejemplo, https //your external service com/webhook endpoint ) especificar el evento desencadenante (por ejemplo, después de que se crea un todo) ejemplo si tienes una url de webhook de slack, puedes configurarla para recibir una notificación cada vez que se inserte un nuevo todo esta conexión fluida entre tu backend de dart y herramientas externas aumenta la automatización paso 10 – explorando el panel de administración de back4app dónde encontrarlo en tu consola de back4app, abre más > aplicación de administración y habilita el panel características gestiona los registros de la base de datos fácilmente revisa los registros, trabajos en segundo plano y análisis controla el acceso y los roles de los usuarios conclusión al seguir estos pasos, has construido un backend seguro para dart en back4app gestionado tu base de datos a través de clases y campos de parse creado código en la nube personalizado para manejar la lógica del lado del servidor asegurado los datos utilizando acls, clps y autenticación de usuarios programado tareas en segundo plano con trabajos en la nube integrado servicios externos utilizando webhooks explorado el panel de administración para una fácil gestión de datos esta sólida base te prepara para implementar proyectos de dart de manera eficiente, ya sea que estés construyendo servidores web a gran escala, microservicios o aplicaciones especializadas desde aquí, puedes escalar tu marco de backend, agregar lógica más compleja o integrar características avanzadas como notificaciones push o análisis avanzados próximos pasos explora la preparación para producción utiliza estrategias de caché, maneja la concurrencia y optimiza el rendimiento para alto tráfico integra características avanzadas como control de acceso basado en roles, más inicios de sesión sociales o herramientas de colaboración en tiempo real consulta la documentación oficial de back4app para obtener información más profunda sobre registros, seguridad y ajuste de rendimiento experimenta con paquetes adicionales como el paquete shelf para crear servidores web personalizados junto a tu capa de datos basada en parse, aprovechando las capacidades de dart como un lenguaje de programación flexible con este conocimiento de cómo construir un backend para dart , tienes una forma poderosa de manejar datos, asegurar tus procesos del lado del servidor y automatizar los flujos de trabajo de tu aplicación, todo sin la necesidad de una infraestructura significativa