Quickstarters
Feature Overview
¿Cómo construir un backend para Deno?
34 min
introducción en este tutorial, aprenderás cómo construir un backend para deno utilizando back4app recorreremos cada paso para integrar las características clave de back4app base de datos, apis rest, autenticación de usuarios, almacenamiento de archivos y consultas en tiempo real, en un entorno deno verás cómo comunicarte con back4app a través de puntos finales rest y crear una infraestructura completa sin gestionar servidores por tu cuenta cuando uses back4app, puedes omitir la configuración manual de servidores con deno, ahorrando tiempo y esfuerzo te centrarás en escribir código más simple, gracias a la biblioteca estándar de deno y su enfoque moderno al final de esta guía sobre cómo construir un backend para deno, tendrás un camino claro para integrar seguridad avanzada, código en la nube y tareas programadas en tu aplicación deno una vez que completes este tutorial, podrás ejecutar el servidor, manejar apis rest, integrar la autenticación de usuarios, almacenar archivos y programar tareas fácilmente también entenderás cómo gestionar tus datos con el enfoque fetch de deno utilizando la api rest de back4app 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, puedes crear una gratis usa el enlace de arriba para preparar tu proyecto instalar deno puedes obtener deno en https //deno land https //deno land instala deno en tu sistema operativo y confírmalo con deno version familiaridad con los conceptos básicos de deno como módulos, sistemas de archivos, deno run allow net , o cómo importar módulos de aplicación de la biblioteca estándar conocimientos básicos de apis rest usaremos llamadas fetch y el tipo de contenido de los encabezados para el manejo de datos, así que asegúrate de conocer los fundamentos de rest y json asegúrate de tener estos requisitos previos antes de comenzar tener tu proyecto de back4app configurado y tu entorno local de deno en funcionamiento te permitirá seguir este tutorial sin problemas paso 1 – crear un nuevo proyecto en back4app y conectar crear un nuevo proyecto la base para tu backend de deno es un proyecto de back4app si aún no has creado uno 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, “deno backend tutorial”) una vez que tu proyecto esté listo, aparecerá en tu panel de control de back4app este proyecto es donde configurarás bases de datos, seguridad y apis conéctate a back4app a través de rest dado que no tenemos un sdk de parse para deno, utilizaremos los endpoints de la api rest de back4app puedes encontrar el id de la aplicación , clave de la api rest , y url del servidor en la sección configuración de la app o seguridad y claves de tu app a lo largo de este tutorial, utilizaremos fetch para enviar solicitudes desde deno a back4app asegúrate de incluir tu clave api y el tipo de contenido de los encabezados en cada llamada paso 2 – configuración de la base de datos en este paso, crearás un modelo de datos en back4app e interactuarás con él utilizando apis rest desde deno creando un modelo de datos ve a la sección “base de datos” en tu panel de control de back4app haz clic en “crear una nueva clase” y nómbrala, por ejemplo, “todo ” agrega columnas relevantes (por ejemplo, título (string), estácompletado (boolean)) también puedes permitir que parse cree estas columnas automáticamente cuando se guarda la información creando un modelo de datos con el agente de ia el agente de ia de back4app puede diseñar tu esquema por ti abre el agente de ia en tu panel de back4app describe tu modelo de datos (por ejemplo, “crea una clase todo con un título, descripción y campo iscompleted ”) permite que el agente genere el esquema automáticamente esto te ayuda a gestionar esquemas más complejos rápidamente leer y escribir datos usando rest api desde deno, puedes ejecutar el servidor llamando a los endpoints rest con fetch por ejemplo, para crear un todo // file called createtodo ts export async function createtodoitem(title string, iscompleted boolean) { const url = "https //parseapi back4app com/classes/todo"; const body = json stringify({ title, iscompleted }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); if (!response ok) { throw new error(`error saving todo ${response statustext}`); } const result = await response json(); return result; } para obtener todos // file called fetchtodos ts export async function fetchtodos() { const url = "https //parseapi back4app com/classes/todo"; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); if (!response ok) { throw new error(`error fetching todos ${response statustext}`); } const result = await response json(); return result; } puedes ejecutar estos con deno run allow net createtodo ts lectura y escritura de datos usando la api de graphql back4app también proporciona un endpoint de graphql https //parseapi back4app com/graphql // file called createtodographql ts export async function createtodographql(title string) { const mutation = ` mutation { createtodo(input { fields { title "${title}" iscompleted false } }) { todo { objectid title iscompleted } } } `; 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 mutation }), }); const result = await response json(); return result; } trabajando con consultas en vivo (opcional) las consultas en vivo te actualizan en tiempo real, pero deno no tiene una biblioteca nativa de parse livequery aún puedes configurar la función de consulta en vivo en tu panel de back4app para otros clientes o usar un websocket en deno para suscribirte manualmente para más detalles, consulta la documentación de consultas en vivo https //www back4app com/docs/platform/live queries paso 3 – aplicando seguridad con acls y clps descripción general las acls (listas de control de acceso) y clps (permisos a nivel de clase) de back4app protegen tus datos usa clps para establecer reglas predeterminadas para toda una clase luego usa acls para restricciones a nivel de objeto configurando permisos a nivel de clase abre la base de datos en tu panel de control de back4app selecciona una clase (por ejemplo, “todo”) ve a los permisos a nivel de clase habilita o deshabilita el acceso de lectura/escritura para el público o para usuarios autenticados según sea necesario configurando acls al crear o actualizar un objeto a través de rest, puedes incluir un atributo acl en el cuerpo de la solicitud por ejemplo const body = json stringify({ title "private task", acl { " " { "read" false, "write" false }, "role\ admins" { "read" true, "write" true }, } }); este ejemplo solo permite que el rol de “admins” lea o escriba el acceso público está desactivado paso 4 – escribiendo funciones de código en la nube por qué código en la nube el código en la nube es donde almacenas lógica segura del lado del servidor no gestionas los servidores tú mismo puedes agregar validaciones o disparadores para clases específicas ejemplo de función de código en la nube puedes definir una función en la nube (en javascript) y desplegarla en tu aplicación por ejemplo, una función para verificar la longitud del texto podría ser parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "text parameter is required"; } return { length text length }; }); despliegue puedes desplegar código a través del back4app cli https //www back4app com/docs/local development/parse cli o el panel de código en la nube en tu panel de control de back4app npm en código en la nube puedes importar bibliotecas externas con require() una vez desplegadas, el entorno del servidor las ejecutará esto es útil para tareas avanzadas, pero recuerda que ejecutarlas desde deno es separado de tu entorno de código en la nube en back4app paso 5 – configurando la autenticación habilitar autenticación back4app utiliza la clase de usuario de parse para la autenticación mientras trabajas con deno, puedes llamar a los endpoints rest para gestionar usuarios registrarse e iniciar sesión usando rest async function signupuser(username string, password string, email string) { const url = "https //parseapi back4app com/users"; const body = json stringify({ username, password, email }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); return await response json(); } async function loginuser(username string, password string) { const url = `https //parseapi back4app com/login?username=${username}\&password=${password}`; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); return await response json(); } inicio de sesión social puedes configurar google, facebook, apple y otros proveedores en back4app luego, llamarás a los endpoints dedicados con tokens de oauth consulta la documentación de inicio de sesión social de back4app https //www back4app com/docs/platform/sign in with apple para más detalles paso 6 – manejo del almacenamiento de archivos subir y recuperar archivos para subir archivos desde deno, utiliza una solicitud post a https //parseapi back4app com/files/\<filename> por ejemplo async function uploadfile(filedata uint8array, filename string) { const url = `https //parseapi back4app com/files/${filename}`; const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "image/png", }, body filedata, }); return await response json(); } luego puedes almacenar la url del archivo resultante en tus objetos de clase este método es perfecto para almacenar imágenes o documentos mientras ejecutas el servidor en deno paso 7 – verificación de correo electrónico y restablecimiento de contraseña descripción general verificar correos electrónicos asegura un acceso legítimo el restablecimiento de contraseña ayuda a los usuarios a recuperar el acceso de manera segura configuración del panel de control habilitar verificación de correo electrónico en tu panel de back4app bajo configuración de correo personalizar tus plantillas de verificación habilitar restablecimiento de contraseña y establecer tu diseño de correo preferido cuando un usuario se registra, recibe un enlace de verificación si activaste la verificación por correo electrónico para restablecer la contraseña, llama al punto final rest post /requestpasswordreset paso 8 – programación de tareas con trabajos en la nube descripción general de trabajos en la nube los trabajos en la nube se ejecutan periódicamente sin intervención humana por ejemplo, puedes eliminar registros antiguos diariamente o enviar recordatorios por correo electrónico de rutina 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\ valueof() 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 implementar este trabajo, puedes programarlo en configuración de la app > configuración del servidor > trabajos en segundo plano en tu panel de back4app paso 9 – integración de webhooks definición un webhook es un callback http que se activa cuando ocurren eventos, como la creación o actualización de objetos puedes integrarte con slack, stripe o cualquier servicio externo configuración abre “más” > “webhooks” en el panel de back4app haz clic en “agregar webhook” y proporciona el endpoint de tu servicio de terceros establece qué desencadenadores o clases deseas enviar solicitudes esto permite que sistemas externos reciban datos cada vez que creas o modificas objetos en back4app paso 10 – explorando el panel de administración de back4app introducción al panel de administración los equipos no técnicos pueden usar este panel para gestionar datos visualmente simplifica las operaciones crud y las revisiones de datos cómo habilitar ve a panel de la aplicación > más > aplicación de administración y elige “habilitar aplicación de administración ” crea un usuario administrador para iniciar sesión establece un subdominio para tu aplicación de administración luego puedes iniciar sesión en la aplicación de administración para gestionar registros de forma segura conclusión en este tutorial, descubriste cómo construir un backend para deno en back4app creaste modelos de datos, manejaste la autenticación de usuarios, aprendiste sobre acls y clps para seguridad, y programaste trabajos en la nube también viste cómo integrar apis externas a través de webhooks y cómo ejecutar el servidor o apis rest con comandos deno run allow net esta configuración te permite comenzar rápidamente sin configurar manualmente sistemas de archivos o las complejidades de la biblioteca estándar para la arquitectura del servidor próximos pasos expande tu aplicación deno con puntos finales adicionales y lógica avanzada utilizando cloud code integra más servicios (por ejemplo, pasarelas de pago, análisis) con tus datos de back4app consulta la documentación oficial de back4app para obtener consejos más profundos sobre seguridad, rendimiento y análisis de registros experimenta con características avanzadas en tiempo real o almacenamiento deno kv, conectando datos entre tu entorno de ejecución deno y el robusto entorno de back4app con tu nuevo conocimiento, puedes implementar con confianza un backend deno seguro, escalable y lleno de características respaldado por back4app