Quickstarters
Feature Overview
How to Build a Backend for Play Framework?
37 min
introdução neste tutorial, você aprenderá como construir um backend completo para o play framework usando o back4app vamos percorrer recursos essenciais para backends de servidor, incluindo configuração, gerenciamento de banco de dados, funções de código em nuvem, apis rest e graphql, autenticação de usuários, armazenamento de arquivos e consultas em tempo real você verá como o back4app simplifica o processo de configuração, escalonamento e manutenção de um backend de aplicação web, permitindo que você se concentre no seu código do play framework ao aprender a construir um backend para o play framework com o back4app, você reduzirá o tempo de desenvolvimento e minimizará dores de cabeça com operações de desenvolvimento você também adicionará recursos robustos como login social, agendamento de tarefas (cloud jobs) e webhooks uma vez que você complete isso, poderá expandir o sistema para uma solução de nível de produção, integrando recursos mais avançados conforme necessário quando você terminar, terá um plano sólido para criar sua próxima aplicação web escalável e segura com o play framework você estará pronto para se aprofundar em melhorias de desempenho, integrações ou otimizações de modo de desenvolvimento para lidar com demandas do mundo real pré requisitos para completar este tutorial, você precisará uma conta back4app e um novo projeto back4app começando com back4app https //www back4app com/docs/get started/new parse app se você não tiver uma conta, pode criar uma gratuitamente siga o guia acima para preparar seu projeto um ambiente funcional do play framework certifique se de que você tem java 8+ https //adoptium net/ instalado instale sbt https //www scala sbt org/download html ou use sbt através do seu ide https //www playframework com/documentation/latest/ide conhecimento básico do play framework consulte a documentação do play https //www playframework com/documentation/latest se você precisar revisar os fundamentos familiaridade com rest ou graphql isso ajudará você a interagir com o back4app, especialmente se você decidir não usar ou se não puder usar o sdk do parse diretamente certifique se de que você tenha esses pré requisitos em ordem antes de começar ter seu projeto back4app configurado e seu ambiente do play framework pronto ajudará você a acompanhar suavemente passo 1 – criando um novo projeto no back4app e conectando por que você precisa de um novo projeto back4app um novo projeto back4app é a espinha dorsal do seu backend porque gerencia os dados, a autenticação e a lógica em nuvem da sua aplicação seja você construindo um pequeno protótipo ou uma aplicação web em grande escala, é fácil conectar seu aplicativo play framework a um novo projeto back4app criando um projeto back4app faça login na sua conta back4app clique em “novo app” no seu painel back4app nomeie seu app , por exemplo, “play framework backend” uma vez criado, seu novo projeto aparecerá no painel conectando se ao back4app back4app utiliza o parse server se seu app play framework planeja interagir com o back4app via o parse java sdk, você pode adicioná lo ao seu build sbt se necessário caso contrário, você pode usar endpoints rest ou graphql recupere suas chaves parse no seu painel back4app, abra configurações do app ou segurança e chaves para encontrar seu id da aplicação , chave da api rest , chave javascript (se estiver usando chamadas de front end), ou chave do cliente , além do url do servidor (geralmente https //parseapi back4app com ) usando o sdk java/parse (opcional) se você quiser integração direta do lado do servidor usando o sdk parse, adicione uma dependência em seu build sbt librarydependencies += "com parse" % "parse" % "1 0 40" // example version então, no seu código do play framework, você pode inicializar o 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() ) } } você pode colocar isso em seu global scala ou chamá lo de um ponto de inicialização adequado isso prepara você para interação direta com seu projeto back4app se preferir, use os endpoints rest ou graphql para operações de dados, especialmente se você quiser mais controle sobre suas requisições http ou se estiver construindo microserviços passo 2 – configurando o banco de dados o serviço de armazenamento de dados da back4app suporta uma ampla gama de tipos de dados e criação de esquemas dinâmicos isso permite que você armazene os dados do seu aplicativo play com o mínimo de complicação criando um modelo de dados abra a seção “banco de dados” no seu painel da back4app crie uma nova classe (por exemplo, “todo”) e adicione colunas (por exemplo, título como string, estácompleto como boolean) salve para finalizar seu esquema de banco de dados criando um modelo de dados com o agente de ia se você quiser definir rapidamente sua estrutura de dados abra o agente de ia no seu painel do app descreva seu modelo de dados desejado em linguagem simples (por exemplo, “crie um modelo de todo simples ”) o agente gera o esquema para você automaticamente lendo e escrevendo dados usando o sdk parse (opcional) se você escolheu incluir o sdk java do parse em seu aplicativo play framework, você pode salvar e consultar dados 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) } } } lendo e escrevendo dados usando rest você pode enviar requisições http a partir de seus controladores ou serviços do 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 lendo e escrevendo dados usando graphql back4app também fornece uma api graphql mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } isso é útil se você estiver construindo microsserviços ou quiser uma api flexível para seus clientes de front end trabalhando com consultas ao vivo se sua aplicação web precisa de dados em tempo real, ative consultas ao vivo ative consultas ao vivo no painel do back4app em configurações do servidor configure sua assinatura no código se estiver usando o sdk do parse ou código personalizado, certifique se de configurar o livequeryserverurl inscreva se para mudanças em classes como “todo ” passo 3 – aplicando segurança com acls e clps visão geral de acls e clps back4app fornece listas de controle de acesso (acls) para segurança em nível de objeto e permissões em nível de classe (clps) para restrições amplas isso ajuda a manter seus backends de servidor seguros e garante que apenas operações autorizadas ocorram permissões em nível de classe na seção banco de dados do seu painel do back4app selecione uma classe (por exemplo, “todo”) abra clps para limitar leitura/gravação a usuários autenticados, funções ou ao público configure conforme necessário (por exemplo, “requer autenticação” para qualquer gravação) acls as acls protegem objetos individuais por exemplo, você pode garantir que apenas um usuário específico possa ler ou escrever um registro específico se você estiver usando o sdk parse a partir do 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 } passo 4 – escrevendo funções de cloud code por que cloud code o cloud code permite que você execute lógica personalizada nos servidores do back4app, adicionando regras de negócios ou validações antes ou depois das transações de dados você não precisará lidar com o provisionamento do seu próprio servidor ou reinicializações em modo de desenvolvimento para implementar tais funções função de exemplo // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); você pode chamar isso do seu aplicativo play via rest, graphql, ou se estiver usando o sdk parse, diretamente implantação use o back4app cli ou o painel instale o cli (exemplo linux/macos) configure a chave da conta implantar ou implante via o painel colando sua função em cloud code > functions e clicando em “implantar” usando módulos npm o cloud code suporta módulos npm por exemplo, se você precisar de um 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; }); passo 5 – configurando a autenticação habilitando a autenticação do usuário back4app usa a parse user classe para registro, login e gerenciamento de sessão em sua configuração , certifique se de que “habilitar verificação de email” e “habilitar redefinição de senha” estejam ativados, se desejado código de exemplo (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) } } } login social se você precisar de logins sociais (google, apple ou facebook), configure os no seu painel do back4app o parse fornece métodos utilitários ou você pode confiar em fluxos padrão de oauth, dependendo de suas necessidades e abordagem passo 6 – manipulação de armazenamento de arquivos back4app armazena arquivos via parse file a partir do play framework, você pode fazer upload com rest ou 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) } } considerações de segurança você pode configurar permissões de upload de arquivos (habilitar para público, anônimo ou autenticado) nas configurações do servidor back4app passo 7 – verificação de email e redefinição de senha navegue até configurações de email no painel do back4app habilite a verificação de email e configure os modelos de email para redefinições de senha no seu aplicativo play, você pode chamar 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 isso fará com que o back4app envie instruções de redefinição de senha para o e mail do usuário passo 8 – agendando tarefas com cloud jobs cloud jobs se você precisar de uma tarefa de início para trabalho em segundo plano (por exemplo, limpeza de dados ou geração de relatórios), você pode agendar cloud jobs no 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); } }); agendamento implante seu cloud code em configurações do app > configurações do servidor > tarefas em segundo plano , agende a tarefa para ser executada diariamente, semanalmente ou conforme necessário passo 9 – integrando webhooks se você quiser notificar serviços externos sempre que os dados mudarem, configure webhooks no back4app vá para mais > webhooks no seu painel do back4app adicione webhook com um endpoint (por exemplo, slack ou stripe) escolha gatilhos, como “novo registro na classe todo ” você também pode criar webhooks em gatilhos de cloud code, fazendo solicitações http diretas para serviços de terceiros passo 10 – explorando o painel de administração do back4app o back4app admin app é uma interface amigável para gerenciamento de dados e registros usuários não técnicos podem realizar operações crud sem precisar mergulhar no código habilitando o admin app vá para app dashboard > mais > admin app habilite e crie um usuário administrador escolha um subdomínio para acesso conveniente uma vez logado, você pode gerenciar entradas de dados sem se preocupar com os painéis de controle de nível inferior ou ferramentas de cli conclusão parabéns! você aprendeu como construir um backend para o play framework usando os serviços da back4app ao longo deste tutorial, você criou um backend seguro para um aplicativo play framework na back4app configurou um banco de dados , incluindo design de esquema, relacionamentos e consultas em tempo real aplicou acls e clps para acesso seguro aos dados escreveu cloud code para lógica personalizada, gatilhos e integrações externas configurou autenticação de usuário , login social e redefinições de senha gerenciou uploads de arquivos e adicionou segurança opcional para arquivos agendou tarefas em segundo plano com cloud jobs integrado com serviços de terceiros através de webhooks explorou o painel de administração da back4app para gerenciamento de dados simplificado com essas ferramentas em funcionamento, você pode otimizar o modo de desenvolvimento, escalar conforme necessário e construir aplicações web robustas no play framework abrace integrações adicionais, ajuste de desempenho e medidas de segurança avançadas para levar seus backends de servidor para o próximo nível próximos passos aprimore sua configuração de produção com ferramentas de cache, registro ou monitoramento explore a segurança avançada com controles de acesso baseados em função ou configurações de zero trust integre gateways de pagamento ou outras apis de terceiros para comércio ou análises confira a documentação oficial do back4app para obter insights mais profundos sobre desempenho e solução de problemas revise mais tutoriais sobre aplicativos de chat em tempo real, soluções de iot ou serviços baseados em localização — muitos dos quais se baseiam nas técnicas deste guia