Quickstarters
Feature Overview
Como Construir um Backend para Dart?
25 min
introdução neste tutorial, você aprenderá como construir um backend para dart usando o back4app focaremos na integração de recursos essenciais do back4app—como gerenciamento de banco de dados, funções de cloud code, apis rest e graphql, autenticação de usuários e consultas em tempo real (live queries)—em um projeto baseado em dart como dart é uma linguagem de programação versátil, você pode usá la para vários projetos de backend, desde servidores web simples até aplicações de grande escala ao aproveitar o ambiente intuitivo do back4app, você configurará rapidamente uma estrutura de backend robusta e segura sem a necessidade de manutenção pesada do servidor você verá como recursos como acls, clps, agendamento de tarefas em segundo plano e criação de lógica personalizada com cloud code simplificam suas operações do lado do servidor após concluir este tutorial, você estará pronto para escalar seu backend em dart ou adicionar integrações mais avançadas 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 ambiente básico de desenvolvimento dart você pode configurar isso instalando o sdk dart e qualquer editor de sua escolha para mais informações, veja obter o sdk dart https //dart dev/get dart dart 2 0 ou superior certifique se de que seu ambiente esteja atualizado, para que você possa aproveitar os recursos recentes do dart e bibliotecas do lado do servidor como o shelf familiaridade com dart e conceitos de backend se você é novo no dart, revise a documentação oficial do dart https //dart dev/guides para construir fluência básica certifique se de ter todos esses pré requisitos em ordem antes de começar ter seu projeto back4app pronto e seu ambiente local dart devidamente configurado ajudará você a acompanhar mais facilmente passo 1 – criando um novo projeto no back4app e conectando por que criar um novo projeto back4app? um novo projeto back4app forma a base do seu backend, gerenciando seu banco de dados, segurança, apis, armazenamento de arquivos e mais ele fornece uma estrutura organizada para construir sua lógica do lado do servidor baseada em dart criando um projeto back4app faça login na sua conta back4app clique em “novo app” no painel do back4app dê um nome descritivo ao seu app (por exemplo, “dart backend tutorial”) uma vez criado, seu projeto aparecerá no painel do back4app este projeto é onde você configurará todas as configurações de backend para seu aplicativo dart instale o parse sdk e conecte embora o dart não tenha um parse sdk oficial, existem bibliotecas mantidas pela comunidade como parse server sdk que permitem a integração com o back4app você pode adicioná lo incluindo a seguinte dependência no pubspec yaml dependencies parse server sdk ^4 0 0 # example version então execute dart pub get inicialize o parse no seu código dart (por exemplo, em um main dart arquivo) import 'package\ parse server sdk/parse server sdk dart'; future\<void> main() async { const keyapplicationid = 'your application id'; const keyclientkey = 'your javascript key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); // your dart server logic goes here print('parse initialized with back4app!'); } recupere seu application id , javascript key , e parse server url do painel do back4app (em “configurações do app” > “segurança e chaves”) com esta etapa, seu aplicativo dart pode interagir de forma segura com seu framework de backend back4app passo 2 – configurando o banco de dados criando um modelo de dados no painel do back4app, navegue até a seção “banco de dados” e crie uma nova classe (por exemplo, “todo”) adicione colunas para seus campos, como title (string) e iscompleted (boolean) criando um modelo de dados usando o agente de ia abra o agente de ia no seu painel do app descreva seu esquema desejado (por exemplo, “por favor, crie uma classe todo com campos title e iscompleted ”) deixe o agente de ia finalizar o esquema para você leitura e escrita de dados usando sdk com a biblioteca parse server sdk, você pode salvar e consultar dados do seu código dart por exemplo import 'package\ parse server sdk/parse server sdk dart'; future\<parseobject?> createtodoitem(string title, bool iscompleted) async { final todo = parseobject('todo') set('title', title) set('iscompleted', iscompleted); final response = await todo save(); if (response success && response result != null) { print('todo created ${response result}'); return response result as parseobject; } else { print('error creating todo ${response error? message}'); return null; } } future\<list\<parseobject>?> fetchtodos() async { final query = querybuilder\<parseobject>(parseobject('todo')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { print('error fetching todos ${response error? message}'); return null; } } leitura e escrita de dados usando rest api 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 leitura e escrita de dados usando graphql api mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } trabalhando com consultas ao vivo (opcional) para habilitar atualizações em tempo real, ative consultas ao vivo no seu painel do back4app (configurações do servidor) você pode então se inscrever a partir do dart, embora possa precisar de uma biblioteca especializada a biblioteca parse server sdk pode ter suporte parcial para consultas ao vivo; verifique sua documentação para detalhes passo 3 – aplicando segurança com acls e clps visão geral acls (listas de controle de acesso) restringir leitura/gravação no nível do objeto clps (permissões de nível de classe) restringir leitura/gravação no nível da classe passo a passo permissões de nível de classe no painel do back4app, abra a seção de banco de dados, escolha uma classe e configure os clps em “segurança ” acls em código (usando o parse server sdk) future\<parseobject?> createprivatetodo(string title, parseuser owneruser) async { final todo = parseobject('todo') set('title', title); final acl = \<string, dynamic>{}; // grant read/write to the owner acl\[owneruser objectid!] = {"read" true, "write" true}; // disable public read/write acl\[' '] = {"read" false, "write" false}; todo setacl(acl); final response = await todo save(); if (response success && response result != null) { return response result as parseobject; } else { print('error setting acl ${response error? message}'); return null; } } passo 4 – escrevendo funções de cloud code por que cloud code cloud code é essencial para criar lógica de negócios personalizada no lado do servidor ele evita que você gerencie sua própria infraestrutura e mantém seu código seguro e escalável exemplo de função e gatilhos no seu main js (para cloud code) // main js parse cloud define('hellodart', (request) => { return `hello from dart and back4app, ${request params name || 'guest'}!`; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'each todo needs a title!'; } }); implantação usando o back4app cli usando o painel vá para cloud code > funções cole seu código em main js clique em implantar npm e cloud code se você precisar de módulos npm adicionais para seu cloud code, especifique os no package json isso permite que você integre apis externas ou operações avançadas diretamente do seu código do lado do servidor passo 5 – configurando a autenticação ativar autenticação de usuário no painel do back4app, você pode ativar a verificação de e mail ou configurar logins sociais por padrão, a classe parse user armazena senhas de forma segura exemplos de código (usando parse server sdk em dart) import 'package\ parse server sdk/parse server sdk dart'; future\<void> signupuser(string username, string password, string email) async { final user = parseuser(username, password, email); final response = await user signup(); if (response success) { print('user signed up ${response result}'); } else { print('error ${response error? message}'); } } future\<void> loginuser(string username, string password) async { final user = parseuser(username, password, null); final response = await user login(); if (response success) { print('user logged in ${response result}'); } else { print('error ${response error? message}'); } } login social configure provedores como google, apple ou facebook no painel do back4app implemente o plugin correspondente do parse server sdk ou um fluxo oauth personalizado, se disponível passo 6 – gerenciando armazenamento de arquivos configurando armazenamento de arquivos o back4app hospeda automaticamente os arquivos que você envia via as apis do parse você pode armazenar imagens, documentos ou qualquer tipo de arquivo exemplo (dart) considerações de segurança você pode controlar quem pode enviar ou recuperar arquivos ajustando suas clps ou funções de usuário no painel do back4app passo 7 – verificação de email e redefinição de senha visão geral a verificação de email confirma que os usuários possuem os emails com os quais se registram, enquanto os links de redefinição de senha fornecem uma maneira segura de gerenciar credenciais perdidas configuração do painel do back4app vá para configurações do app > email ative verificar emails de usuário e redefinição de senha personalize seus modelos de email conforme necessário implementação quando os usuários se inscrevem usando um email válido, eles recebem um link de verificação de email para redefinições de senha, chame o método requestpasswordreset do parseuser (se disponível no parse server sdk) ou o endpoint rest passo 8 – agendamento de tarefas com cloud jobs o que os cloud jobs fazem os cloud jobs permitem que você agende tarefas em intervalos definidos, como limpar registros antigos ou enviar relatórios periódicos eles operam em segundo plano, independentemente das ações acionadas pelo usuário exemplo em main js , adicione 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 vá para configurações do app > configurações do servidor > trabalhos em segundo plano agende cleanupoldtodos para ser executado diariamente ou em um intervalo que você escolher passo 9 – integrando webhooks definição webhooks permitem que seu aplicativo back4app faça requisições http para um serviço externo em certos eventos isso é útil para integrar com serviços de terceiros como slack ou stripe configuração vá para mais > webhooks no seu painel do back4app clique em adicionar webhook e forneça um endpoint (por exemplo, https //your external service com/webhook endpoint ) especifique o evento de disparo (por exemplo, após um todo ser criado) exemplo se você tiver uma url de webhook do slack, pode configurá la para receber uma notificação sempre que um novo todo for inserido essa conexão perfeita entre seu backend dart e ferramentas externas aumenta a automação passo 10 – explorando o painel de administração do back4app onde encontrá lo no seu console do back4app, abra mais > aplicativo de administração e habilite o painel recursos gerencie registros de banco de dados facilmente revise logs, trabalhos em segundo plano e análises controle o acesso e os papéis dos usuários conclusão seguindo estas etapas, você construiu um backend seguro para dart no back4app gerenciou seu banco de dados através de classes e campos parse criou código de nuvem personalizado para lidar com a lógica do lado do servidor protegeu dados usando acls, clps e autenticação de usuário agendou tarefas em segundo plano com cloud jobs integrou serviços externos usando webhooks explorou o painel de administração para fácil gerenciamento de dados esta base sólida prepara você para implantar projetos dart de forma eficiente, seja construindo servidores web em grande escala, microsserviços ou aplicações especializadas a partir daqui, você pode escalar seu framework de backend, adicionar lógica mais complexa ou integrar recursos avançados, como notificações push ou análises avançadas próximos passos explore a prontidão para produção use estratégias de cache, gerencie concorrência e otimize o desempenho para alto tráfego integre recursos avançados como controle de acesso baseado em função, mais logins sociais ou ferramentas de colaboração em tempo real confira a documentação oficial do back4app para obter insights mais profundos sobre logs, segurança e ajuste de desempenho experimente com pacotes adicionais como o pacote shelf para criar servidores web personalizados ao lado de sua camada de dados baseada em parse, aproveitando as capacidades do dart como uma linguagem de programação flexível com este conhecimento de como construir um backend para dart , você tem uma maneira poderosa de lidar com dados, proteger seus processos do lado do servidor e automatizar os fluxos de trabalho do seu aplicativo—tudo isso sem a necessidade de uma sobrecarga significativa de infraestrutura