Quickstarters
CRUD Samples
Construyendo una Aplicación CRUD Básica con Lit?
43 min
descripción general en esta guía, crearás una aplicación crud (crear, leer, actualizar, eliminar) completamente funcional utilizando lit demostraremos cómo gestionar datos dinámicamente construyendo una aplicación que realice estas operaciones esenciales inicialmente, configurarás un proyecto de back4app llamado basic crud app lit que servirá como tu robusto backend después de establecer tu proyecto, diseñarás un esquema de base de datos flexible definiendo colecciones y campos, ya sea manualmente o con la ayuda del agente ai de back4app este paso es crucial para garantizar que tu sistema maneje de manera confiable las operaciones crud a continuación, utilizarás la aplicación administrativa de back4app—una interfaz fácil de usar, de arrastrar y soltar—para gestionar tus colecciones de manera eficiente finalmente, integrarás tu frontend de lit con back4app utilizando rest/graphql, asegurando que tu backend permanezca seguro con controles de acceso adecuados al final de este tutorial, tendrás una aplicación web lista para producción que no solo realiza funciones crud básicas, sino que también incluye autenticación de usuarios y manejo seguro de datos puntos clave domina el desarrollo de aplicaciones crud que gestionen datos de manera efectiva con un backend confiable aprende a diseñar una base de datos escalable e integrarla sin problemas con un frontend basado en lit utiliza una herramienta de administración de arrastrar y soltar (la aplicación de administración de back4app) para simplificar las operaciones crud comprende las estrategias de implementación, incluida la contenedorización con docker, para lanzar tu aplicación web de manera eficiente requisitos previos antes de comenzar, asegúrate de tener una cuenta de back4app con un nuevo proyecto para asistencia, consulta introducción a back4app https //www back4app com/docs/get started/new parse app un entorno de desarrollo lit configura tu proyecto utilizando tu kit de inicio preferido y asegúrate de que node js (v14 o posterior) esté instalado conocimientos básicos de javascript, lit y apis rest consulta la documentación de lit https //lit dev/docs/ si es necesario paso 1 – inicializando tu proyecto estableciendo un nuevo proyecto de back4app inicie sesión en su cuenta de back4app seleccione la opción “nueva aplicación” desde su panel de control nombra tu proyecto basic crud app lit y sigue las instrucciones para crearlo crear nuevo proyecto una vez que su proyecto esté creado, aparecerá en el panel de control, proporcionándole la base para la configuración del backend y la gestión del proyecto paso 2 – creando el esquema de su base de datos construyendo su modelo de datos para esta aplicación crud, definirás varias colecciones a continuación se presentan colecciones de ejemplo con campos y tipos de datos sugeridos, que te ayudarán a configurar un esquema efectivo capaz de manejar operaciones crud 1\ colección de artículos campo tipo de dato detalles id objectid clave primaria generada automáticamente título cadena nombre del artículo descripción cadena detalles breves sobre el artículo creado en fecha marca de tiempo cuando se creó el elemento actualizado en fecha marca de tiempo cuando el elemento fue modificado por última vez 2\ colección de usuarios campo tipo de dato detalles id objectid clave primaria generada automáticamente nombre de usuario cadena identificador único para el usuario correo electrónico cadena la dirección de correo electrónico única del usuario hash de contraseña cadena contraseña hash para una autenticación segura creado en fecha marca de tiempo para la creación de la cuenta actualizado en fecha marca de tiempo para la última actualización de la cuenta puedes agregar estas colecciones manualmente a través del panel de control de back4app creando nuevas clases y definiendo las columnas apropiadas crear nueva clase para cada campo, simplemente elige un tipo de dato, asigna un nombre, establece un valor predeterminado si es necesario y especifica si es obligatorio crear columna utilizando el agente ai de back4app para la creación de esquemas el agente ai de back4app, disponible desde tu panel de control, puede generar automáticamente tu esquema basado en un aviso descriptivo esta función agiliza la gestión de proyectos al garantizar la consistencia en la configuración de tu backend cómo usar el agente ai lanza el agente ai navega al agente ai desde tu panel de control de back4app o dentro de la configuración del proyecto detalla tu modelo de datos pega un aviso completo describiendo las colecciones y campos que necesitas revisa y aplica inspecciona las sugerencias generadas y confírmales para actualizar tu proyecto ejemplo de aviso create the following collections in my back4app application 1\) collection items \ fields \ id objectid (auto generated primary key) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated primary key) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) usar esta función de ia ahorra tiempo valioso mientras asegura que su base de datos esté estructurada de manera óptima paso 3 – activar la aplicación de administración y funcionalidades crud introducción a la aplicación de administración la aplicación de administración de back4app ofrece una interfaz sin código para una gestión de datos en el backend sin esfuerzo su funcionalidad intuitiva de arrastrar y soltar le permite ejecutar operaciones crud crear, leer, actualizar y eliminar registros con facilidad cómo habilitar la aplicación de administración acceda a la sección “más” en su panel de control de back4app seleccione “aplicación de administración” y haga clic en “habilitar aplicación de administración ” configure sus credenciales de administrador creando un usuario administrador inicial, que configurará roles (como b4aadminuser ) y colecciones del sistema habilitar la aplicación de administración después de la activación, inicie sesión en la aplicación de administración para gestionar sus colecciones panel de control de la aplicación de administración realizando operaciones crud a través de la aplicación de administración dentro de la aplicación de administración, puedes crear entradas haz clic en el botón “agregar registro” dentro de una colección (por ejemplo, artículos) para generar nuevas entradas leer/modificar registros haz clic en un registro para inspeccionar sus detalles o modificar sus campos eliminar registros utiliza la función de eliminar para eliminar entradas que ya no son necesarias esta interfaz sencilla mejora significativamente la experiencia del usuario al simplificar la gestión de datos paso 4 – conectando lit con back4app ahora que tu backend está configurado y gestionado, es hora de integrar tu frontend lit con back4app opción a usando el sdk de parse (cuando sea aplicable) instala el sdk de parse npm install parse configura parse en tu aplicación lit crea un archivo de configuración (por ejemplo, src/parseconfig js ) // src/parseconfig js import parse from 'parse'; // inserta tus credenciales de back4app aquí parse initialize('your application id', 'your javascript key'); parse serverurl = 'https //parseapi back4app com'; export default parse; implementa parse en un componente lit crea un componente lit que recupere y muestre elementos // src/components/itemslist js import { litelement, html, css } from 'lit'; import parse from ' /parseconfig'; class itemslist extends litelement { static properties = { items { type array } }; constructor() { super(); this items = \[]; } connectedcallback() { super connectedcallback(); this fetchitems(); } async fetchitems() { const items = parse object extend("items"); const query = new parse query(items); try { const results = await query find(); this items = results; } catch (error) { console error("error al recuperar elementos ", error); } } render() { return html` \<h2>elementos\</h2> \<ul> ${this items map( (item) => html` \<li>${item get("title")} — ${item get("description")}\</li> ` )} \</ul> `; } } customelements define('items list', itemslist); export default itemslist; opción b utilizando rest o graphql si el sdk de parse no es adecuado para tu proyecto, realiza operaciones crud utilizando rest o graphql por ejemplo, para recuperar elementos a través de rest // example rest request to get items const fetchitems = async () => { try { const response = await fetch('https //parseapi back4app com/classes/items', { headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }); const data = await response json(); console log('items retrieved ', data results); } catch (error) { console error('error fetching items ', error); } }; fetchitems(); integra estas llamadas a la api dentro de tus componentes lit según sea necesario paso 5 – protegiendo tu backend implementando listas de control de acceso (acls) asegura tus objetos configurando acls por ejemplo, para crear un elemento privado async function createprivateitem(itemdata, owneruser) { const items = parse object extend('items'); const item = new items(); item set('title', itemdata title); item set('description', itemdata description); // set acl so only the owner has access const acl = new parse acl(owneruser); acl setpublicreadaccess(false); acl setpublicwriteaccess(false); item setacl(acl); try { const saveditem = await item save(); console log('private item created ', saveditem); } catch (error) { console error('error saving item ', error); } } configurando permisos a nivel de clase (clps) dentro del panel de back4app, ajusta los clps para cada colección para hacer cumplir las reglas de acceso predeterminadas esto asegura que solo los usuarios autenticados o autorizados puedan acceder a información sensible paso 6 – implementación de la autenticación de usuarios creación de cuentas de usuario back4app utiliza la clase user de parse para gestionar la autenticación en tu aplicación lit, implementa el registro y el inicio de sesión de usuarios como se demuestra a continuación // src/components/auth js import { litelement, html, css } from 'lit'; import parse from ' /parseconfig'; class signupform extends litelement { static properties = { username { type string }, password { type string }, email { type string } }; constructor() { super(); this username = ''; this password = ''; this email = ''; } async handlesignup(e) { e preventdefault(); const user = new parse user(); user set('username', this username); user set('password', this password); user set('email', this email); try { await user signup(); alert('user registration successful!'); } catch (error) { alert('registration error ' + error message); } } render() { return html` \<form @submit="${this handlesignup}"> \<input type="text" placeholder="username" value="${this username}" @input="${e => this username = e target value}" /> \<input type="password" placeholder="password" value="${this password}" @input="${e => this password = e target value}" /> \<input type="email" placeholder="email" value="${this email}" @input="${e => this email = e target value}" /> \<button type="submit">register\</button> \</form> `; } } customelements define('sign up form', signupform); export default signupform; puedes implementar de manera similar el inicio de sesión y la gestión de sesiones funciones adicionales como la autenticación social, la verificación de correo electrónico y los restablecimientos de contraseña se pueden configurar a través del panel de back4app paso 7 – desplegando tu frontend lit a través del despliegue web la función de despliegue web de back4app te permite alojar tu aplicación lit desplegando código desde un repositorio de github sigue estos pasos para preparar tu construcción de producción, subir tu código a github y desplegar tu sitio 7 1 creando tu construcción de producción abre el directorio de tu proyecto en una terminal ejecuta el comando de construcción npm run build esto creará una carpeta de construcción que contiene activos estáticos optimizados verifica la construcción confirma que la carpeta de construcción incluye un archivo index html junto con los subdirectorios necesarios 7 2 organizando y subiendo tu código tu repositorio de github debe albergar el código fuente completo de tu frontend lit una estructura de proyecto típica podría verse así basic crud app lit frontend/ ├── node modules/ ├── public/ │ └── index html ├── src/ │ ├── app js │ ├── parseconfig js │ └── components/ │ ├── itemslist js │ └── auth js ├── package json └── readme md ejemplo de archivo de configuración src/parseconfig js import parse from 'parse'; // insert your actual back4app credentials here parse initialize('your application id', 'your javascript key'); parse serverurl = 'https //parseapi back4app com'; export default parse; ejemplo de archivo principal de aplicación src/app js import { litelement, html } from 'lit'; import parse from ' /parseconfig'; class approot extends litelement { static properties = { items { type array }, newtitle { type string }, newdescription { type string } }; constructor() { super(); this items = \[]; this newtitle = ''; this newdescription = ''; } connectedcallback() { super connectedcallback(); this loaditems(); } async loaditems() { const items = parse object extend("items"); const query = new parse query(items); try { const results = await query find(); this items = results; } catch (error) { console error("failed to load items ", error); } } async additem() { const items = parse object extend("items"); const item = new items(); item set("title", this newtitle); item set("description", this newdescription); try { await item save(); this newtitle = ''; this newdescription = ''; this loaditems(); } catch (error) { console error("error adding item ", error); } } render() { return html` \<div style="padding 2rem;"> \<h1>items\</h1> \<div> \<input type="text" placeholder="title" value="${this newtitle}" @input="${e => this newtitle = e target value}" /> \<input type="text" placeholder="description" value="${this newdescription}" @input="${e => this newdescription = e target value}" /> \<button @click="${this additem}">add item\</button> \</div> \<ul> ${this items map(item => html` \<li> \<strong>${item get("title")}\</strong> ${item get("description")} \</li> `)} \</ul> \</div> `; } } customelements define('app root', approot); export default approot; subiendo código a github inicializa git en el directorio de tu proyecto git init agrega todos tus archivos git add confirma tus cambios git commit m "commit inicial de lit frontend" crea un nuevo repositorio en github (por ejemplo, basic crud app lit frontend ) sube tu código git remote add origin https //github com/tu nombre de usuario/basic crud app lit frontend git git push u origin main 7 3 conectando tu repositorio de github con el despliegue web de back4app acceder al despliegue web inicia sesión en tu panel de back4app, elige tu proyecto (basic crud app lit) y selecciona la opción de despliegue web vincula tu cuenta de github sigue las instrucciones para conectar tu cuenta de github, permitiendo que back4app acceda a tu repositorio elige tu repositorio y rama selecciona el repositorio (por ejemplo, basic crud app lit frontend ) y la rama (por ejemplo, main ) que contiene tu código lit 7 4 configurando la configuración de despliegue especifica tus configuraciones de construcción comando de construcción si falta una carpeta de construcción preconstruida, usa un comando como npm run build back4app ejecutará este comando durante el despliegue directorio de salida establece esto en build para que back4app pueda localizar tus archivos estáticos variables de entorno incluye cualquier clave api necesaria u otros valores específicos del entorno 7 5 contenerizando tu aplicación lit con docker si prefieres docker, incluye un dockerfile en tu repositorio \# use a lightweight node image for building the app from node 16 alpine as build \# set the working directory workdir /app \# copy package files and install dependencies copy package json / run npm install \# copy remaining source code and build the app copy run npm run build \# use nginx to serve the built app from nginx\ stable alpine copy from=build /app/build /usr/share/nginx/html expose 80 cmd \["nginx", " g", "daemon off;"] en la configuración de despliegue de back4app, elige la opción de despliegue de docker para contenerizar tu aplicación 7 6 lanzando tu aplicación iniciar el despliegue haz clic en el desplegar botón después de finalizar tus configuraciones monitorea el proceso back4app obtendrá tu código de github, ejecutará el comando de construcción y desplegará tu contenedor obtén tu url en vivo una vez que el despliegue termine, se proporcionará una url donde se aloja tu aplicación lit 7 7 validando tu despliegue visita la url abre el enlace proporcionado en tu navegador prueba la funcionalidad asegúrate de que la aplicación se cargue correctamente, la navegación funcione y todos los activos se sirvan correctamente depura si es necesario utiliza las herramientas de desarrollador del navegador para inspeccionar cualquier problema si surgen problemas, revisa los registros de despliegue en back4app paso 8 – reflexiones finales y mejoras futuras ¡gran trabajo! has desarrollado con éxito una aplicación crud básica utilizando lit y back4app configuraste un proyecto llamado basic crud app lit , definiste un esquema de base de datos detallado para items y users, y gestionaste tus datos con la admin app además, integraste tu frontend de lit con el backend e implementaste medidas de seguridad robustas próximos pasos mejora tu frontend agrega características como páginas de detalles de artículos, funcionalidad de búsqueda y actualizaciones en tiempo real expande las capacidades del backend integra funcionalidades avanzadas como cloud functions, servicios api externos o controles de acceso basados en roles explora más recursos visita la documentación de back4app https //www back4app com/docs y otros tutoriales para obtener una comprensión más profunda sobre rendimiento y personalización siguiendo esta guía, ahora posees las habilidades para crear un backend crud escalable y seguro para tu aplicación lit utilizando back4app ¡disfruta programando y sigue innovando!