Quickstarters
Feature Overview
¿Cómo construir un backend para Play Framework?
37 min
introducción en este tutorial, aprenderás a construir un backend completo para el play framework utilizando back4app recorreremos características esenciales para backends de servidor, incluyendo configuración, gestión de bases de datos, funciones de cloud code, apis rest y graphql, autenticación de usuarios, almacenamiento de archivos y consultas en tiempo real verás cómo back4app simplifica el proceso de configurar, escalar y mantener un backend de aplicación web mientras te permite concentrarte en tu código de play framework al aprender a construir un backend para play framework con back4app, reducirás el tiempo de desarrollo y minimizarás los dolores de cabeza de operaciones de desarrollo también agregarás características robustas como inicio de sesión social, programación de tareas (cloud jobs) y webhooks una vez que completes esto, podrás extender el sistema a una solución de grado de producción, integrando características más avanzadas según sea necesario cuando termines, tendrás un sólido plano para crear tu próxima aplicación web escalable y segura con play framework estarás listo para profundizar en mejoras de rendimiento, integraciones u optimizaciones en modo de desarrollo para manejar demandas del mundo real 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, puedes crear una gratis sigue la guía anterior para preparar tu proyecto un entorno de play framework en funcionamiento asegúrate de tener java 8+ https //adoptium net/ instalado instala sbt https //www scala sbt org/download html o usa sbt a través de tu ide https //www playframework com/documentation/latest/ide conocimientos básicos de play framework consulta la documentación de play https //www playframework com/documentation/latest si necesitas repasar los fundamentos familiaridad con rest o graphql esto te ayudará a interactuar con back4app, especialmente si decides no usar o si no puedes usar el sdk de parse directamente asegúrate de tener estos requisitos previos en su lugar antes de comenzar tener tu proyecto de back4app configurado y tu entorno de play framework listo te ayudará a seguir sin problemas paso 1 – crear un nuevo proyecto en back4app y conectar por qué necesitas un nuevo proyecto de back4app un nuevo proyecto de back4app es la columna vertebral de tu backend porque gestiona los datos de tu aplicación, la autenticación y la lógica en la nube ya sea que estés construyendo un pequeño prototipo o una aplicación web a gran escala, es fácil conectar tu aplicación de play framework a un nuevo proyecto de back4app creando un proyecto de back4app inicia sesión en tu cuenta de back4app haz clic en “nueva app” en tu panel de back4app nombra tu app , por ejemplo, “play framework backend” una vez creado, tu nuevo proyecto aparecerá en el panel conectando con back4app back4app aprovecha parse server si tu app de play framework planea interactuar con back4app a través del sdk de java de parse, puedes agregarlo a tu build sbt si es necesario de lo contrario, puedes usar endpoints rest o graphql recupera tus claves de parse en tu panel de back4app, abre configuración de la app o seguridad y claves para encontrar tu id de aplicación , clave api rest , clave de javascript (si usas llamadas del front end), o clave de cliente , además de la url del servidor (usualmente https //parseapi back4app com ) usando el sdk de java/parse (opcional) si deseas una integración directa del lado del servidor usando el sdk de parse, agrega una dependencia en tu build sbt librarydependencies += "com parse" % "parse" % "1 0 40" // example version luego, en tu código de play framework, puedes inicializar parse object parseconfig { def init() unit = { parse initialize(new parse configuration builder("your app id") server("https //parseapi back4app com") clientkey("your client key") build() ) } } puedes colocar esto en tu global scala o llamarlo desde un punto de inicialización adecuado esto te prepara para la interacción directa con tu proyecto de back4app si lo prefieres, utiliza los endpoints rest o graphql para operaciones de datos, especialmente si deseas más control sobre tus solicitudes http o si estás construyendo microservicios paso 2 – configurando la base de datos el servicio de almacenamiento de datos de back4app admite una amplia gama de tipos de datos y creación de esquemas dinámicos esto te permite almacenar los datos de tu aplicación play con un mínimo de complicaciones creando un modelo de datos abre la sección “base de datos” en tu panel de control de back4app crea una nueva clase (por ejemplo, “todo”) y añade columnas (por ejemplo, título como string, iscompleted como boolean) guarda para finalizar el esquema de tu base de datos creando un modelo de datos con el agente de ia si deseas definir rápidamente la estructura de tus datos abre el agente de ia en tu panel de control de la aplicación describe tu modelo de datos deseado en lenguaje sencillo (por ejemplo, “crea un modelo de todo simple ”) el agente genera el esquema automáticamente para ti lectura y escritura de datos utilizando el sdk de parse (opcional) si has elegido incluir el sdk de java de parse en tu aplicación de play framework, puedes guardar y consultar datos import com parse {parseobject, parsequery} object todoservice { def createtodo(title string, iscompleted boolean) either\[throwable, parseobject] = { try { val todo = new parseobject("todo") todo put("title", title) todo put("iscompleted", iscompleted) right(todo save()) } catch { case e throwable => left(e) } } def fetchtodos() either\[throwable, java util list\[parseobject]] = { try { val query = parsequery getquery("todo") val results = query find() right(results) } catch { case e throwable => left(e) } } } lectura y escritura de datos utilizando rest puedes enviar solicitudes http desde tus controladores o servicios de play framework 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 lectura y escritura de datos utilizando graphql back4app también proporciona una api de graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } esto es útil si estás construyendo microservicios o quieres una api flexible para tus clientes de front end trabajando con consultas en vivo si tu aplicación web necesita datos en tiempo real, habilita consultas en vivo habilitar consultas en vivo en el panel de control de back4app bajo configuración del servidor configura tu suscripción en el código si usas el sdk de parse o código personalizado, asegúrate de configurar el livequeryserverurl suscribirse a cambios para clases como “todo ” paso 3 – aplicando seguridad con acls y clps descripción general de acls y clps back4app proporciona listas de control de acceso (acls) para seguridad a nivel de objeto y permisos a nivel de clase (clps) para restricciones amplias esto ayuda a mantener seguros los backends de tu servidor y asegura que solo ocurran operaciones autorizadas permisos a nivel de clase en la sección de base de datos de tu panel de control de back4app selecciona una clase (por ejemplo, “todo”) abre clps para limitar la lectura/escritura a usuarios autenticados, roles o al público configura según sea necesario (por ejemplo, “requiere autenticación” para cualquier escritura) acls las acl protegen objetos individuales por ejemplo, puedes asegurarte de que solo un usuario particular pueda leer o escribir un registro específico si estás utilizando el sdk de parse desde código scala import com parse {parseacl, parseuser, parseobject} def createprivatetodo(title string, owner parseuser) parseobject = { val todo = new parseobject("todo") todo put("title", title) val acl = new parseacl(owner) acl setpublicreadaccess(false) acl setpublicwriteaccess(false) todo setacl(acl) todo save() todo } paso 4 – escribiendo funciones de cloud code por qué cloud code cloud code te permite ejecutar lógica personalizada en los servidores de back4app, añadiendo reglas de negocio o validaciones antes o después de las transacciones de datos no necesitarás manejar tu propia provisión de servidores o reinicios en modo de desarrollo para implementar tales funciones función de ejemplo // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); puedes llamar a esto desde tu aplicación play a través de rest, graphql, o si usas el sdk de parse, directamente despliegue usa el back4app cli o el panel de control instala el cli (ejemplo de linux/macos) configura la clave de cuenta desplegar o desplegar a través del panel de control pegando tu función en cloud code > functions y presionando “desplegar” uso de módulos npm cloud code soporta módulos npm por ejemplo, si necesitas un cliente http como axios const axios = require('axios'); parse cloud define('fetchdata', async (req) => { const response = await axios get(req params url); return response data; }); paso 5 – configuración de la autenticación habilitando la autenticación de usuarios back4app utiliza la parse user clase para el registro, inicio de sesión y gestión de sesiones en tu configuration setting , asegúrate de activar “habilitar verificación de correo electrónico” y “habilitar restablecimiento de contraseña” si lo deseas código de ejemplo (parse sdk) import com parse {parseuser} object authservice { def signupuser(username string, password string, email string) either\[throwable, parseuser] = { try { val user = new parseuser() user setusername(username) user setpassword(password) user setemail(email) right(user signup()) } catch { case e throwable => left(e) } } def loginuser(username string, password string) either\[throwable, parseuser] = { try { right(parseuser login(username, password)) } catch { case e throwable => left(e) } } } inicio de sesión social si necesitas inicios de sesión sociales (google, apple o facebook), configúralos en tu panel de back4app parse proporciona métodos de utilidad o puedes confiar en flujos estándar de oauth, dependiendo de tus necesidades y enfoque paso 6 – manejo del almacenamiento de archivos back4app almacena archivos a través de parse file desde play framework, puedes subir con rest o parse sdk // example with parse sdk import com parse {parsefile, parseobject} import java nio file {files, paths} def uploadimage(filepath string) either\[throwable, string] = { try { val data = files readallbytes(paths get(filepath)) val parsefile = new parsefile("myimage jpg", data) parsefile save() right(parsefile geturl) } catch { case e throwable => left(e) } } consideraciones de seguridad puedes configurar los permisos de carga de archivos (habilitar para público, anónimo o autenticado) en la configuración del servidor back4app paso 7 – verificación de correo electrónico y restablecimiento de contraseña navega a configuración de correo electrónico en el panel de control de back4app habilita la verificación de correo electrónico y configura las plantillas de correo electrónico para restablecimientos de contraseña en tu aplicación play, puedes llamar a 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" "user\@example com"}' \\ https //parseapi back4app com/requestpasswordreset esto hará que back4app envíe instrucciones para restablecer la contraseña al correo electrónico del usuario paso 8 – programación de tareas con cloud jobs cloud jobs si necesitas un tarea de inicio para trabajos en segundo plano (por ejemplo, limpiar datos o generar informes), puedes programar cloud jobs en back4app // 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); } }); programación despliega tu cloud code en configuración de la aplicación > configuración del servidor > trabajos en segundo plano , programa el trabajo para que se ejecute diariamente, semanalmente o según sea necesario paso 9 – integrando webhooks si deseas notificar a servicios externos cada vez que los datos cambian, configura webhooks en back4app ve a más > webhooks en tu panel de control de back4app agrega webhook con un endpoint (por ejemplo, slack o stripe) elige desencadenadores, como “nuevo registro en la clase todo ” también puedes crear webhooks en desencadenadores de cloud code, haciendo solicitudes http directas a servicios de terceros paso 10 – explorando el panel de administración de back4app el back4app admin app es una interfaz fácil de usar para la gestión de datos y registros los usuarios no técnicos pueden manejar operaciones crud sin profundizar en el código habilitando la admin app ve a app dashboard > más > admin app habilítalo y crea un usuario administrador elige un subdominio para un acceso conveniente una vez que inicies sesión, puedes gestionar las entradas de datos sin complicarte con los paneles de control de nivel inferior o herramientas de cli conclusión ¡felicidades! has aprendido cómo construir un backend para play framework utilizando los servicios de back4app a lo largo de este tutorial, has creado un backend seguro para una aplicación de play framework en back4app configurado una base de datos , incluyendo diseño de esquema, relaciones y consultas en tiempo real aplicado acls y clps para acceso seguro a los datos escrito cloud code para lógica personalizada, disparadores e integraciones externas configurado la autenticación de usuarios , inicio de sesión social y restablecimientos de contraseña manejado cargas de archivos y añadido seguridad opcional para archivos programado tareas en segundo plano con cloud jobs integrado con servicios de terceros a través de webhooks explorado el panel de administración de back4app para una gestión de datos simplificada con estas herramientas en su lugar, puedes optimizar el modo de desarrollo, escalar según sea necesario y construir aplicaciones web robustas en el play framework adopta más integraciones, ajuste de rendimiento y medidas de seguridad avanzadas para llevar tus backends de servidor al siguiente nivel próximos pasos mejora tu configuración de producción con herramientas de caché, registro o monitoreo explora la seguridad avanzada con controles de acceso basados en roles o configuraciones de confianza cero integra pasarelas de pago u otras api de terceros para comercio o análisis consulta la documentación oficial de back4app para obtener información más profunda sobre rendimiento y solución de problemas revisa más tutoriales sobre aplicaciones de chat en tiempo real, soluciones iot o servicios basados en ubicación, muchos de los cuales se basan en las técnicas de esta guía