Quickstarters
Feature Overview
How to Build a Backend for React Native?
39 min
introducción en este tutorial, aprenderás cómo construir un backend para react native utilizando back4app nos centraremos en la compatibilidad multiplataforma e ilustrar cómo puedes integrar las características esenciales de back4app para la gestión de datos, la autenticación de usuarios y los datos en tiempo real al aprovechar las api rest y graphql, puedes desarrollar tu proyecto de react native para que funcione en las plataformas ios y android, asegurando una experiencia fluida a través de componentes nativos y aplicaciones móviles implementar inicios de sesión seguros para usuarios, programar tareas y utilizar aplicaciones en tiempo real hará que tu viaje como desarrollador full stack sea más fácil también verás cómo el entorno de back4app puede reducir el tiempo necesario para configurar servicios que incluyen alojamiento, base de datos y capas de seguridad al final, tendrás una estructura de backend robusta que soporta tu aplicación de react native y allana el camino para construir soluciones móviles a gran escala después de completar esta guía, estarás listo para expandir tu aplicación con características avanzadas, integrar servicios de terceros o convertir tu proyecto en una plataforma lista para producción ¡sumérgete en el desarrollo moderno de aplicaciones móviles con back4app y react native! 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, regístrate gratis luego, sigue la guía para preparar tu proyecto entorno de desarrollo básico de react native puedes usar el react native cli quickstart https //reactnative dev/docs/environment setup o expo cli https //docs expo dev/get started/installation/ asegúrate de tener node js instalado node js (versión 14 o superior) instalado necesitas node js para instalar paquetes npm y ejecutar servidores de desarrollo locales instalando node js https //nodejs org/en/download/ familiaridad con javascript y conceptos básicos de react native documentación oficial de react native https //reactnative dev/ si eres nuevo en el desarrollo de react native, revisa primero la documentación o un tutorial para principiantes asegúrate de tener estos requisitos previos en su lugar antes de comenzar tener tu proyecto de back4app creado y tu entorno local de react native configurado garantizará un proceso fluido paso 1 – crear un nuevo proyecto en back4app y conectarse crear un nuevo proyecto el primer paso para construir backends móviles para tu aplicación react native es crear un nuevo proyecto en back4app sigue estos pasos inicia sesión en tu cuenta de back4app haz clic en el botón “nueva app” en tu panel de control de back4app dale un nombre a tu app (por ejemplo, “reactnative backend tutorial”) una vez que se crea el proyecto, aparecerá en tu panel de control de back4app usarás este nuevo proyecto para gestionar datos y configurar la seguridad de tu aplicación react native obteniendo tus claves de aplicación a diferencia de las aplicaciones react basadas en la web, el desarrollo de react native a menudo requiere solicitudes http directas para la recuperación y manipulación de datos dado que nos estamos enfocando en rest apis (o graphql apis ) en lugar del sdk de parse, aún necesitarás tus claves de back4app para enviar solicitudes autenticadas recupera tus claves de parse en el panel de control de back4app, abre la sección de configuración de la aplicación o seguridad y claves para encontrar tu id de aplicación , clave de api rest , y punto de acceso graphql (generalmente https //parseapi back4app com/graphql ) anota tu clave de api rest la incluirás en los encabezados de fetch o axios de tu react native para autenticar cada solicitud este paso asegura que tus aplicaciones móviles puedan comunicarse de manera segura con back4app paso 2 – configurando la base de datos back4app proporciona una amplia gama de opciones de backend para aplicaciones de react native, incluidas capacidades robustas de gestión de datos puedes crear clases, agregar campos y definir relaciones a través del panel de control ya sea que estés construyendo aplicaciones en tiempo real o aplicaciones crud más simples, el panel de control de back4app te ayuda a almacenar y organizar datos fácilmente creando un modelo de datos navega a la sección “base de datos en tu panel de control de back4app crea una nueva clase (por ejemplo, “todo”) y agrega columnas relevantes como título (string) y iscompleted (boolean) back4app admite varios tipos de datos string , number , boolean , object , date , file , pointer , array , relation , geopoint , y polygon también puedes permitir que parse cree automáticamente campos cuando envíes nuevos datos creando un modelo de datos con agente de ia si lo prefieres, puedes usar el agente de ia de back4app abre el agente de ia desde tu panel de control de la app describe tu modelo de datos en lenguaje sencillo (por ejemplo, “crea una clase todo con un título y campos iscompleted ”) deja que el agente de ia cree el esquema por ti esto puede ahorrar tiempo durante las primeras etapas de tu proyecto de react native lectura y escritura de datos usando rest api para el desarrollo típico de react native, puedes usar la nativa fetch api o una biblioteca de terceros como axios para manejar apis rest a continuación se muestra un ejemplo usando curl, que puedes adaptar para fetch post (crear un todo) 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 get (obtener todos) curl x get \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ https //parseapi back4app com/classes/todo en tu aplicación de react native, puedes hacer lo mismo con fetch async function gettodos() { try { const response = await fetch('https //parseapi back4app com/classes/todo', { method 'get', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key', 'content type' 'application/json', }, }); const data = await response json(); console log('fetched todos ', data results); return data results; } catch (error) { console error('error fetching todos ', error); } } lectura y escritura de datos usando la api de graphql si prefieres graphql, back4app proporciona un endpoint de graphql a continuación se muestra un ejemplo de mutación para crear un nuevo registro mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } puedes ejecutar consultas de graphql usando una biblioteca como apollo client o incluso una simple fetch llamada async function createtodographql() { const query = ` mutation { createtodo(input { fields { title "study react native" iscompleted false } }) { todo { objectid title } } } `; try { const response = await fetch('https //parseapi back4app com/graphql', { method 'post', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key', 'content type' 'application/json', }, body json stringify({ query }), }); const result = await response json(); console log('graphql response ', result); } catch (error) { console error('error creating todo with graphql ', error); } } trabajando con consultas en vivo (opcional) para datos en tiempo real, back4app tiene consultas en vivo, aunque generalmente requiere el sdk de parse como nos estamos enfocando en llamadas rest en este tutorial, puedes habilitar consultas en vivo en la configuración del servidor de tu aplicación si planeas usarlas más tarde los datos en tiempo real pueden ayudarte a mantener a los usuarios actualizados instantáneamente en una aplicación de react native para un enfoque más simple, podrías sondear el servidor con tus propios intervalos o confiar en herramientas de terceros paso 3 – aplicando seguridad con acls y clps resumen breve back4app asegura tu backend con acls (listas de control de acceso) y clps (permisos a nivel de clase) estos te permiten proteger datos tanto a nivel de objeto como de clase son vitales para implementar permisos de usuario seguros en el desarrollo de aplicaciones móviles de calidad de producción paso a paso permisos a nivel de clase (clps) ve a la sección base de datos de tu aplicación, abre cualquier clase y cambia a “seguridad y permisos ” ajusta los permisos de lectura/escritura para varios roles de usuario o acceso público acls puedes aplicar control de acceso por objeto incluyendo campos acl en tus solicitudes rest por ejemplo para más detalles, consulta las directrices de seguridad de la aplicación https //www back4app com/docs/security/parse security paso 4 – escribiendo funciones de cloud code por qué cloud code cloud code te permite ejecutar scripts del lado del servidor en back4app para tareas como validaciones, disparadores y procesamiento de llamadas a api externas te ayuda a controlar la lógica que debe permanecer oculta para el cliente, proporcionando mejor seguridad para tu proyecto de react native ejemplo de función a continuación se muestra un ejemplo que escribirías en tu main js en el lado del servidor puedes llamarlo desde tu aplicación de react native a través de rest // main js parse cloud define('generategreeting', async (request) => { const { name } = request params; if (!name) { throw 'name parameter is missing!'; } return `hello, ${name}! welcome to our react native app `; }); despliegue back4app cli instala la cli, configura tu clave de cuenta y ejecuta b4a deploy tablero también puedes ir a cloud code > functions , pega tu código en main js , y haz clic en desplegar llamando a tu función (a través de rest) usa apis rest directamente desde tu aplicación react native async function callcloudfunction(name) { try { const response = await fetch('https //parseapi back4app com/functions/generategreeting', { method 'post', headers { 'x parse application id' 'your app id', 'x parse rest api key' 'your rest api key', 'content type' 'application/json', }, body json stringify({ name }), }); const data = await response json(); console log('greeting ', data result); } catch (err) { console error('error calling cloud function ', err); } } esta flexibilidad te convierte en un desarrollador full stack más eficiente, ya que puedes integrar la lógica de negocio sin exponer detalles sensibles en el cliente paso 5 – configurando la autenticación habilitar o configurar la autenticación de usuario back4app utiliza la clase parse user para gestionar la autenticación de usuarios incluso si no estás utilizando el sdk de parse en react native, puedes registrarte, iniciar sesión o cerrar sesión utilizando solicitudes http directas registrar un usuario (rest) curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{ "username" "alice", "password" "secretpassword", "email" "alice\@example com" }' \\ https //parseapi back4app com/users iniciar sesión (rest) curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secretpassword' \\ https //parseapi back4app com/login estas solicitudes devuelven un token de sesión que puedes almacenar en tu aplicación de react native para gestionar las sesiones de usuario esto asegura que cada solicitud que realices pueda ser autorizada, construyendo experiencias móviles que se mantengan seguras inicio de sesión social back4app admite inicios de sesión sociales (google, facebook, apple) a través de flujos especializados necesitarás seguir el documentos de inicio de sesión social https //www back4app com/docs/platform/sign in with apple para configurar aplicaciones oauth, y luego enviar los tokens apropiados a back4app paso 6 – manejo del almacenamiento de archivos configurando el almacenamiento de archivos back4app puede almacenar archivos para tu aplicación react native puedes adjuntarlos a objetos o subirlos directamente dado que estamos usando rest, a continuación se muestra un ejemplo de cómo subir un archivo (codificado en base64) curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type image/png" \\ \ data binary '@path to your file png' \\ https //parseapi back4app com/files/image png la respuesta devuelve una url que puedes almacenar en tu base de datos desde tu aplicación react native, puedes hacer esto con fetch enviando el archivo como un blob o datos de formulario consideraciones de seguridad para prevenir cargas no autorizadas, configura las opciones de fileupload en tu configuraciones del servidor parse por ejemplo, podrías permitir cargas solo de usuarios autenticados esto asegura que servicios como el almacenamiento de archivos permanezcan protegidos paso 7 – verificación de correo electrónico y restablecimiento de contraseña descripción general confirmar la propiedad del correo electrónico es clave para implementar flujos de usuario seguros back4app ofrece herramientas integradas para la verificación de correo electrónico y restablecimientos de contraseña configuración del panel de control de back4app abre la configuración de tu aplicación habilita la verificación de correo electrónico en la configuración de correo electrónico personaliza las plantillas para los mensajes de restablecimiento de contraseña y verificación código/implementación un usuario que olvida su contraseña puede activar una solicitud de restablecimiento curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset back4app envía un correo electrónico de restablecimiento de contraseña al usuario esta conveniencia te ahorra la configuración de servidores de correo separados en tu aplicación de react native paso 8 – programación de tareas con cloud jobs qué hacen los cloud jobs los cloud jobs te ayudan a automatizar tareas recurrentes como la limpieza de datos o el envío de informes diarios a continuación se muestra un ejemplo de trabajo en main js // main js 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); } }); despliega este código, luego ve a configuración del servidor > tareas en segundo plano para programarlo esto mantiene tus datos actualizados en tus plataformas ios y android sin intervención manual paso 9 – integrando webhooks definición los webhooks permiten que tu backend notifique a servicios externos cada vez que ocurre un evento por ejemplo, podrías notificar a slack o a una pasarela de pago al crear un nuevo todo configuración ve a más > webhooks en tu panel de control de back4app agrega un nuevo webhook apuntando a un endpoint externo deseado establece disparadores para definir cuándo los cambios en los datos de tu aplicación react native deberían activar el webhook también puedes codificar webhooks dentro de los disparadores de cloud code, lo que te permite enviar solicitudes http o integrarte con apis de terceros esto amplía las capacidades de tu backend a una amplia gama de servicios externos paso 10 – explorando el panel de administración de back4app dónde encontrarlo el panel de administración de back4app es una interfaz fácil de usar para personas no técnicas para gestionar datos es especialmente útil para propietarios de productos, representantes de clientes o personal de soporte que necesitan acceso directo a su modelo de datos características habilitar la aplicación de administración en su panel de la aplicación > más > aplicación de administración crear un usuario administrador (nombre de usuario/contraseña) elegir un subdominio para un acceso rápido a la base de datos sin código una vez que inicie sesión, sus usuarios o equipo pueden ver, editar o eliminar registros sin escribir ningún código este enfoque apoya una gestión de datos más rápida y colaboración conclusión en esta guía, aprendiste cómo construir un backend para aplicaciones de react native utilizando back4app esto incluyó crear un backend seguro e implementar compatibilidad multiplataforma para tu aplicación de react native configurar la gestión de datos con apis rest y graphql configurar acls y clps para proteger datos sensibles escribir cloud code para la lógica del lado del servidor manejar la autenticación de usuarios y la verificación de correos electrónicos gestionar el almacenamiento de archivos con cargas directas programar tareas en segundo plano con cloud jobs usar webhooks para integrar servicios externos explorar el panel de administración de back4app para una fácil administración de bases de datos con estas herramientas y características, tu proyecto de react native puede crecer hasta convertirse en una solución de pila completa confiable y escalable ahora estás equipado para manejar datos en tiempo real, seguridad de usuarios y otros aspectos cruciales de las aplicaciones móviles sigue explorando la documentación de back4app https //www back4app com/docs/ para perfeccionar tus habilidades y crear experiencias móviles poderosas en las plataformas ios y android próximos pasos fortalece tu aplicación de react native con seguridad avanzada y control de acceso basado en roles experimenta con actualizaciones en tiempo real utilizando consultas en vivo para aplicaciones en tiempo real (si es necesario) integra apis externas y servicios incluyendo pasarelas de pago o inicios de sesión sociales mejora el rendimiento a través de caché u optimizando funciones en la nube profundiza más en la documentación oficial de back4app https //www back4app com/docs/ para desbloquear características adicionales