Quickstarters
CRUD Samples
¿Cómo construir una aplicación CRUD con Redwood.js?
38 min
descripción general en esta guía, aprenderás cómo crear una aplicación crud básica (crear, leer, actualizar, eliminar) utilizando redwoodjs este tutorial te guiará a través del proceso de configurar tu proyecto con back4app como tu servicio backend, diseñando un esquema de base de datos robusto e integrándolo con un frontend de redwoodjs siguiendo estos pasos, construirás una aplicación lista para producción que gestiona datos de manera efectiva mientras emplea técnicas de desarrollo modernas perspectivas esenciales domina la creación de una aplicación crud que maneje datos de manera eficiente con un potente servicio backend descubre cómo arquitectar una base de datos escalable y fusionarla con una interfaz de redwoodjs para mejorar la interacción del usuario explora el uso de una herramienta de gestión sin código de arrastrar y soltar la aplicación de administración de back4app, para agilizar las operaciones crud aprende estrategias de implementación, incluyendo la contenedorización con docker, para lanzar rápidamente tu aplicación web requisitos previos antes de comenzar, verifica que tienes lo siguiente una cuenta activa de back4app con un nuevo proyecto listo si necesitas orientación, consulta introducción a back4app https //www back4app com/docs/get started/new parse app un entorno de desarrollo de redwoodjs configurado usa la cli de redwoodjs para crear tu aplicación asegúrate de que node js (versión 14 o posterior) esté instalado un conocimiento básico de javascript, redwoodjs y graphql para más detalles, visita la documentación de redwoodjs https //redwoodjs com/docs/introduction paso 1 – inicia tu proyecto iniciando un nuevo proyecto en back4app inicia sesión en tu panel de back4app selecciona “nueva app” para comenzar un nuevo proyecto nombra tu proyecto basic crud app redwoodjs y sigue las instrucciones de configuración crear nuevo proyecto tu proyecto aparecerá ahora en el panel de control, sentando las bases para la configuración y gestión de tu backend paso 2 – creando el esquema de la base de datos estructurando tu modelo de datos para esta aplicación crud, diseñarás varias colecciones a continuación se presentan ejemplos de dos colecciones esenciales junto con los campos necesarios estas configuraciones son cruciales para habilitar funcionalidades crud confiables 1\ colección artículos esta colección contiene detalles sobre cada artículo campo tipo de dato propósito id objectid identificador único generado automáticamente título cadena el nombre o título del artículo descripción cadena un breve resumen que describe el artículo creado en fecha marca de tiempo de creación del registro actualizado en fecha marca de tiempo de la última actualización 2\ colección usuarios esta colección almacena las credenciales y detalles del usuario campo tipo de dato propósito id objectid identificador único generado 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 encriptada para la autenticación creado en fecha marca de tiempo de creación de la cuenta actualizado en fecha marca de tiempo de la última actualización puedes configurar estas colecciones directamente en el panel de control de back4app creando nuevas clases y añadiendo columnas apropiadas crear nueva clase define cada campo eligiendo su tipo, nombrándolo y estableciendo su estado predeterminado o requerido crear columna empleando el agente ai de back4app para la creación de esquemas el agente ai de back4app, accesible desde tu panel de control, puede generar automáticamente el esquema de tu base de datos basado en un aviso descriptivo esta función acelera significativamente la configuración de un esquema consistente para tu aplicación cómo usar el agente ai lanza el agente ai accede al agente desde tu panel de control de back4app o configuraciones del proyecto detalla tu modelo de datos ingresa un aviso completo que describa las colecciones y campos que necesitas revisa e implementa examina las sugerencias de esquema generadas y aplícalas a tu proyecto ejemplo de aviso create these collections in my back4app project 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) utilizar este enfoque impulsado por ai no solo ahorra tiempo, sino que también garantiza un esquema bien optimizado y uniforme paso 3 – activando la aplicación de administración y gestionando operaciones crud introducción a la aplicación de administración la aplicación de administración de back4app es una interfaz fácil de usar y sin código que te permite manejar tus datos de backend sin esfuerzo su funcionalidad de arrastrar y soltar hace que realizar operaciones crud—como agregar, ver, actualizar y eliminar registros—sea muy sencillo cómo habilitar la aplicación de administración ve al menú “más” en tu panel de back4app selecciona “aplicación de administración” y luego haz clic en “habilitar aplicación de administración ” configura tus credenciales de administrador creando un usuario administrador inicial, lo que también establece roles (por ejemplo, b4aadminuser ) y colecciones del sistema habilitar aplicación de administración después de la activación, inicia sesión en la aplicación de administración para gestionar tus datos panel de administración de la aplicación realizando crud a través de la aplicación de administración dentro de la aplicación de administración, puedes agregar nuevos registros usa el botón “agregar registro” en una colección (por ejemplo, artículos) para insertar nuevos datos ver y modificar registros haz clic en un registro para ver sus detalles y realizar actualizaciones eliminar registros selecciona la opción de eliminar para eliminar datos que ya no son necesarios esta interfaz intuitiva simplifica enormemente las tareas de gestión de datos paso 4 – integrando redwoodjs con back4app ahora que tu backend está configurado y es manejable a través de la aplicación de administración, es hora de conectar tu frontend de redwoodjs con back4app uso de la integración de api graphql redwoodjs está construido alrededor de graphql, lo que lo convierte en una combinación perfecta para integrarse con back4app a través de llamadas a la api en lugar de usar el sdk, interactuarás con tu backend utilizando consultas y mutaciones de graphql configurando tu proyecto de redwoodjs crea una nueva aplicación de redwoodjs yarn create redwood app basic crud app redwood navega a tu directorio de proyecto cd basic crud app redwood configura tus variables de entorno en tu env archivo, agrega tus credenciales de back4app back4app app id=your application id back4app rest api key=your rest api key back4app server url=https //parseapi back4app com obteniendo datos con redwoodjs cells las cells de redwoodjs simplifican la obtención de datos aquí hay un ejemplo de una cell que recupera elementos // web/src/components/itemscell/itemscell js export const query = gql` query items query { items itemscollection { id title description } } `; export const loading = () => \<div>loading items…\</div>; export const empty = () => \<div>no items available \</div>; export const failure = ({ error }) => \<div>error {error message}\</div>; export const success = ({ items }) => { return ( \<ul> {items map((item) => ( \<li key={item id}> \<strong>{item title}\</strong> — {item description} \</li> ))} \</ul> ); }; puedes integrar consultas y mutaciones graphql similares en tus componentes de redwoodjs para realizar operaciones crud paso 5 – asegurando tu backend implementando control de acceso protege tus datos estableciendo listas de control de acceso (acl) directamente en los objetos por ejemplo, al crear un elemento privado, puedes asegurarte de que solo el propietario tenga privilegios de lectura/escritura async function createprivateitem(itemdata, owner) { const response = await fetch(`${process env back4app server url}/classes/items`, { method 'post', headers { 'x parse application id' process env back4app app id, 'x parse rest api key' process env back4app rest api key, 'content type' 'application/json' }, body json stringify({ title itemdata title, description itemdata description, acl { \[owner] { read true, write true }, " " { read false, write false } } }) }); return response json(); } configurando permisos a nivel de clase dentro del panel de control de back4app, establece permisos a nivel de clase (clps) para cada colección para restringir el acceso a usuarios autenticados o roles específicos, asegurando que tus datos permanezcan seguros paso 6 – gestionando la autenticación de usuarios configurando la gestión de cuentas back4app aprovecha un robusto sistema de usuarios, que puedes integrar en redwoodjs para la autenticación de usuarios en tu aplicación redwoodjs, maneja los registros e inicios de sesión de usuarios a través de llamadas a la api ejemplo registro de usuario // web/src/components/auth/signup js import { usestate } from 'react'; const signup = () => { const \[username, setusername] = usestate(''); const \[email, setemail] = usestate(''); const \[password, setpassword] = usestate(''); const handlesignup = async (e) => { e preventdefault(); try { const response = await fetch(`${process env back4app server url}/users`, { method 'post', headers { 'x parse application id' process env back4app app id, 'x parse rest api key' process env back4app rest api key, 'content type' 'application/json' }, body json stringify({ username, email, password }) }); const data = await response json(); if (data error) { alert('sign up failed ' + data error); } else { alert('user successfully registered!'); } } catch (error) { console error('registration error ', error); } }; return ( \<form onsubmit={handlesignup}> \<input type="text" placeholder="username" value={username} onchange={(e) => setusername(e target value)} /> \<input type="email" placeholder="email" value={email} onchange={(e) => setemail(e target value)} /> \<input type="password" placeholder="password" value={password} onchange={(e) => setpassword(e target value)} /> \<button type="submit">sign up\</button> \</form> ); }; export default signup; se puede aplicar un método similar para iniciar sesión y mantener sesiones de usuario paso 7 – desplegando tu frontend de redwoodjs a través de despliegue web la función de despliegue web de back4app hace que alojar tu frontend de redwoodjs sea sencillo sigue estos pasos para llevar tu código a producción 7 1 construye tu versión de producción abre tu carpeta de proyecto en la terminal ejecuta el comando de construcción yarn rw build esto generará una web/dist carpeta que contiene tus archivos estáticos optimizados verifica la salida de la construcción asegúrate de que la web/dist carpeta contenga un index html junto con todos los activos necesarios 7 2 organiza y confirma tu código fuente tu repositorio debe albergar el código fuente completo de tu aplicación redwoodjs una estructura típica podría ser basic crud app redwood/ ├── api/ ├── web/ │ ├── dist/ │ ├── src/ │ │ ├── components/ │ │ │ ├── itemscell/ │ │ │ └── auth/ │ │ └── app js │ └── index html ├── env └── package json comprometiéndose a github inicializa git (si es necesario) git init prepara tus archivos git add confirma tu código git commit m "compromiso inicial para el frontend crud de redwoodjs" crea un repositorio de github (por ejemplo, basic crud app redwood ) y sube tu código git remote add origin https //github com/tu nombre de usuario/basic crud app redwood git git push u origin main 7 3 integrarse con el despliegue web acceder al despliegue web desde tu panel de back4app bajo tu proyecto (basic crud app redwood) conectar tu cuenta de github si aún no lo has hecho, siguiendo las indicaciones seleccionar tu repositorio y rama (por ejemplo, main ) que contiene tu código de redwoodjs 7 4 establecer parámetros de despliegue comando de construcción especificar yarn rw build si tu repositorio no incluye una distribución preconstruida directorio de salida configura el directorio de salida como web/dist variables de entorno incluye cualquier variable de entorno necesaria, como tus claves de back4app 7 5 contenerizando con docker si prefieres docker para el despliegue, incluye un dockerfile en tu repositorio por ejemplo \# use an official node image for building the app from node 16 alpine as builder \# set the working directory workdir /app \# copy dependency definitions copy package json / \# install dependencies run yarn install \# copy the project files copy \# build the redwoodjs app run yarn rw build \# use nginx to serve the static files from nginx\ stable alpine copy from=builder /app/web/dist /usr/share/nginx/html expose 80 cmd \["nginx", " g", "daemon off;"] 7 6 desplegando la aplicación presiona el botón desplegar en back4app después de finalizar tu configuración monitorea el proceso de despliegue back4app obtendrá tu código, construirá el proyecto y lo desplegará en un entorno containerizado recupera la url de tu aplicación una vez desplegada, se proporcionará una url donde se aloja tu aplicación redwoodjs 7 7 valida tu despliegue abre la url proporcionada en tu navegador para confirmar que el sitio se carga prueba la funcionalidad de la aplicación asegúrate de que todas las páginas, rutas y activos se carguen correctamente soluciona problemas si es necesario utiliza las herramientas de desarrollador del navegador y los registros de despliegue de back4app para cualquier depuración necesaria paso 8 – reflexiones finales y direcciones futuras ¡felicidades por construir tu aplicación crud basada en redwoodjs utilizando back4app! has configurado con éxito un proyecto titulado basic crud app redwood , creado colecciones de base de datos detalladas para artículos y usuarios, e integrado un frontend limpio con una gestión de datos robusta y seguridad ¿qué sigue? refina tu frontend mejora tu aplicación redwoodjs con características como páginas de artículos detalladas, funcionalidades de búsqueda y actualizaciones en tiempo real incorpora características avanzadas considera agregar funciones sin servidor, integraciones de terceros o controles de acceso más complejos explora recursos adicionales profundiza en la documentación de back4app https //www back4app com/docs y guías de redwoodjs https //redwoodjs com/docs para más mejoras al seguir este tutorial, ahora posees el conocimiento para desarrollar un backend crud escalable e integrarlo sin problemas con un frontend moderno de redwoodjs utilizando back4app ¡disfruta de tu viaje de codificación!