Quickstarters
Feature Overview
How to Build a Backend for Ionic?
35 min
introducción en este tutorial, aprenderás cómo construir un backend completo para una aplicación ionic utilizando back4app cubriremos la gestión de bases de datos, funciones de cloud code, apis rest y graphql, autenticación de usuarios, manejo de archivos y más nuestro objetivo es mostrarte cómo construir un backend para ionic que sea seguro, escalable y fácil de mantener usaremos el entorno intuitivo de back4app para simplificar la configuración del lado del servidor, ahorrándote de configurar manualmente servidores o bases de datos aprenderás herramientas esenciales como programar tareas con cloud jobs, aplicar reglas de seguridad avanzadas e integrar webhooks con otros servicios al final, estarás listo para expandir este backend fundamental en un sistema listo para producción para tu aplicación ionic requisitos previos 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, crea una gratis y sigue la guía anterior para configurar tu proyecto entorno de desarrollo básico de ionic asegúrate de tener el ionic cli https //ionicframework com/docs/intro/cli instalado y poder crear y ejecutar una aplicación ionic node js (versión 14 o superior) instalado descargar node js https //nodejs org/en/download/ para gestionar dependencias y construir tu proyecto familiaridad con javascript/typescript y conceptos de ionic documentación oficial de ionic https //ionicframework com/docs tener un buen dominio de las estructuras, componentes y ganchos de ciclo de vida de ionic será útil paso 1 – crear un nuevo proyecto en back4app y conectar inicia sesión en tu cuenta de back4app crea una nueva aplicación utilizando el botón “nueva aplicación” en tu panel de control de back4app nombra tu aplicación (por ejemplo, “ionic backend tutorial”) este proyecto de back4app es la base para tu backend a diferencia de usar un sdk de parse del lado del cliente, este tutorial demostrará cómo hacer llamadas a través de rest y graphql desde tu aplicación ionic recuperando tus credenciales en el panel de back4app, ve a configuración de la aplicación o seguridad y claves anota tu id de aplicación , clave api rest , y punto de acceso graphql necesitarás estos para enviar solicitudes desde tu aplicación ionic paso 2 – configuración de la base de datos tener una base de datos bien estructurada es la columna vertebral de cada aplicación el panel de back4app facilita el diseño de modelos de datos y la gestión de relaciones 1\ creando un modelo de datos ve a la base de datos sección en tu panel de back4app crea una nueva clase (por ejemplo, “todo”) y añade columnas (por ejemplo, título como string, iscompleted como boolean) 2\ creando un modelo de datos usando el agente de ia abre el agente de ia desde tu panel de control de back4app describe tu esquema deseado, como “crea una clase todo con campos para título (string) y iscompleted (boolean) ” el agente de ia generará el esquema automáticamente 3\ lectura y escritura de datos usando rest api desde tu código ionic, puedes ejecutar solicitudes http por ejemplo, para 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 para obtener todos los 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 puedes integrar estas llamadas usando fetch , axios , o cualquier biblioteca de cliente http dentro de los archivos de servicio o componente de tu aplicación ionic 4\ leer y escribir datos usando la api de graphql de manera similar, puedes enviar mutaciones y consultas de graphql desde tu aplicación ionic por ejemplo, para crear un nuevo todo mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } ejemplo las llamadas rest o graphql pueden colocarse en un archivo de proveedor/servicio en tu estructura ionic, y luego ser llamadas desde tus páginas 5\ trabajando con consultas en vivo (opcional) las consultas en vivo proporcionan actualizaciones en tiempo real a los datos de tu aplicación, aunque requieren el sdk de parse o un enfoque de suscripción especializado si necesitas datos en tiempo real, puedes habilitar consultas en vivo desde la configuración de tu servidor back4app normalmente usarías una conexión websocket para observar cambios en tus clases sin embargo, para llamadas estándar basadas en http, puedes consultar periódicamente los puntos finales rest o graphql paso 3 – aplicando seguridad con acls y clps resumen breve las acls (listas de control de acceso) te permiten establecer permisos de lectura/escritura en objetos individuales las clps (permisos a nivel de clase) te permiten gestionar un acceso más amplio a nivel de clase estas características son cruciales para proteger datos privados y asegurar que solo los usuarios autorizados puedan modificar información configurando permisos a nivel de clase en tu panel de control de back4app, ve a base de datos > permisos a nivel de clase configura los valores predeterminados de tu clase (por ejemplo, solo los usuarios autenticados pueden crear nuevos todos) configurando acls al crear o actualizar registros, puedes pasar acl campos a través de 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 '{ "title" "private task", "acl" { "user object id here" { "read" true, "write" true } } }' \\ https //parseapi back4app com/classes/todo para más información, 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 javascript del lado del servidor para tareas como validación de datos, disparadores o integraciones puedes crear puntos finales personalizados para centralizar la lógica, lo cual es especialmente útil si deseas mantener el código fuera del cliente ejemplo de función y disparadores en tu main js en el lado del servidor (back4app), podrías escribir // main js parse cloud define('validatetodo', (request) => { const { title } = request params; if (!title) { throw 'a title is required '; } return `title "${title}" looks good `; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'todos must have a title '; } }); despliega esto a través del back4app cli https //www back4app com/docs/local development/parse cli o en la sección de cloud code del panel llamando a cloud code desde ionic puedes enviar una solicitud post 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 '{"title" "check this out"}' \\ https //parseapi back4app com/functions/validatetodo // main js parse cloud define('validatetodo', (request) => { const { title } = request params; if (!title) { throw 'a title is required '; } return `title "${title}" looks good `; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'todos must have a title '; } }); despliega esto a través del back4app cli https //www back4app com/docs/local development/parse cli o en la sección de cloud code del panel recibirás una respuesta json que contiene cualquier dato devuelto o un mensaje de error módulos npm puedes instalar paquetes como axios en tu entorno de cloud code para integrar servicios de terceros inclúyelos en main js const axios = require('axios'); parse cloud define('fetchdata', async (request) => { const url = request params url; const response = await axios get(url); return response data; }); despliega y llámalo de la misma manera que lo harías con cualquier función de cloud code paso 5 – configurando la autenticación habilitando la autenticación de usuarios el registro y el inicio de sesión de usuarios se pueden realizar con llamadas rest a la user clase por ejemplo, para registrarse 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" "jon", "password" "somepassword", "email" "jon\@example com" }' \\ https //parseapi back4app com/users iniciar sesión curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ \ data urlencode 'username=jon' \\ \ data urlencode 'password=somepassword' \\ https //parseapi back4app com/login si tienes éxito, recibirás un sessiontoken guárdalo de forma segura e inclúyelo en los encabezados de futuras solicitudes para operaciones autenticadas inicios de sesión sociales puedes configurar inicios de sesión sociales (como google o facebook) configurando el flujo de oauth a través de back4app o utilizando proveedores externos consulta la documentación de inicio de sesión social https //www back4app com/docs/platform/sign in with apple para pasos detallados paso 6 – manejo del almacenamiento de archivos configurando el almacenamiento de archivos back4app ofrece almacenamiento de archivos seguro puedes adjuntar archivos a objetos o almacenarlos de forma independiente por ejemplo 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/image png" \\ https //parseapi back4app com/files/myimage png la respuesta incluirá una url de archivo que puedes almacenar en una clase 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 '{ "imagefile" { " type" "file", "name" "myimage png", "url" "response url here" } }' \\ https //parseapi back4app com/classes/photo consideraciones de seguridad puedes habilitar reglas de seguridad de archivos en configuraciones del servidor de back4app para requerir autenticación o limitar las cargas de archivos a roles específicos paso 7 – verificación de correo electrónico y restablecimiento de contraseña por qué la verificación es importante la verificación de correo electrónico asegura la legitimidad de los correos electrónicos de los usuarios el restablecimiento de contraseña proporciona una forma segura de recuperar credenciales perdidas esto ayuda a mantener la confianza y una adecuada gestión de usuarios en tu aplicación ionic configuración del panel de control de back4app ve a configuraciones de la aplicación > configuraciones de correo electrónico habilita verificación de correo electrónico personaliza las plantillas de correo electrónico de verificación y restablecimiento de contraseña 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 recurrentes como la limpieza de datos o el envío de correos electrónicos de resumen los escribes en tu main js parse cloud job('cleanupoldtodos', async (request) => { 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); después de la implementación ve a configuraciones de la aplicación > configuraciones del servidor > trabajos en segundo plano programa cleanupoldtodos para que se ejecute diariamente paso 9 – integrando webhooks los webhooks te permiten enviar datos a servicios externos cuando ocurren ciertos eventos en tu proyecto de back4app si tu aplicación ionic necesita activar una acción en stripe o slack después de crear un nuevo registro, puedes usar webhooks para automatizar eso ve a más > webhooks en tu panel de control de back4app agrega un nuevo webhook y establece su endpoint (por ejemplo, https //your service com/webhook endpoint ) elige el evento (por ejemplo, “después de guardar” en la clase todo ) también puedes iniciar solicitudes salientes desde los triggers de cloud code en main js usando bibliotecas http estándar paso 10 – explorando el panel de administración de back4app el back4app admin app es una interfaz más simple para partes interesadas no técnicas proporciona una manera fácil de realizar operaciones crud en tus clases sin entrar en el panel principal de parse habilitando la admin app en el panel, ve a más > admin app haz clic en habilitar admin app y crea un usuario administrador elige un subdominio para acceder a tu interfaz de administrador este panel te ayuda a gestionar datos sin escribir consultas, lo que lo hace ideal para clientes o miembros del equipo que prefieren una interfaz gráfica conclusión al completar esta guía sobre cómo construir un backend para ionic , has creado un backend seguro en back4app con modelos de datos robustos y relaciones integrado con apis rest y graphql para leer y escribir datos desde tu aplicación ionic implementado seguridad con acls y clps desplegado cloud code para lógica y triggers personalizados configurado la autenticación de usuarios y almacenamiento de archivos configurado cloud jobs para programar tareas aprovechado webhooks para integraciones externas explorado el panel de administración para simplificar la administración de datos con esta base, tu aplicación ionic puede evolucionar hacia una plataforma lista para producción agrega más lógica, conecta apis de terceros o ajusta las reglas de seguridad para que coincidan con tu caso de uso próximos pasos mejora tu construcción de producción implementando caché, acceso basado en roles y monitoreo de rendimiento integra características avanzadas como consultas en tiempo real o autenticación multifactor consulta la documentación oficial de back4app para una exploración profunda de análisis, registros y ajuste de rendimiento explora otros tutoriales que demuestran aplicaciones de chat, integraciones de iot o características basadas en ubicación combinadas con los robustos servicios backend de back4app