Quickstarters
Feature Overview
Como construir um backend para Deno?
34 min
introdução neste tutorial, você aprenderá como construir um backend para deno usando back4app vamos percorrer cada etapa para integrar os principais recursos do back4app—banco de dados, apis rest, autenticação de usuários, armazenamento de arquivos e consultas em tempo real—em um ambiente deno você verá como se comunicar com o back4app através de endpoints rest e criar uma infraestrutura completa sem gerenciar servidores por conta própria quando você usa o back4app, pode pular a configuração manual de servidores com deno, economizando tempo e esforço você se concentrará em escrever um código mais simples, graças à biblioteca padrão do deno e à abordagem moderna ao final deste guia sobre como construir um backend para deno, você terá um caminho claro para integrar segurança avançada, código em nuvem e tarefas agendadas em sua aplicação deno uma vez que você complete este tutorial, você será capaz de executar o servidor, lidar com apis rest, integrar a autenticação de usuários, armazenar arquivos e agendar tarefas facilmente você também entenderá como gerenciar seus dados com a abordagem fetch do deno usando a api rest do back4app pré requisitos uma conta no back4app e um novo projeto no back4app começando com o back4app https //www back4app com/docs/get started/new parse app se você não tiver uma conta, pode criar uma gratuitamente use o link acima para preparar seu projeto instalar deno você pode obter o deno em https //deno land https //deno land instale o deno no seu sistema operacional e confirme com deno version familiaridade com conceitos básicos do deno como módulos, sistemas de arquivos, deno run allow net , ou como importar módulos de aplicação da biblioteca padrão conhecimento básico de apis rest usaremos chamadas fetch e o tipo de conteúdo dos cabeçalhos para manipulação de dados, então certifique se de conhecer os fundamentos de rest e json certifique se de ter esses pré requisitos antes de começar ter seu projeto back4app configurado e seu ambiente local do deno em funcionamento permitirá que você siga este tutorial sem problemas passo 1 – criando um novo projeto no back4app e conectando criar um novo projeto a base para o seu backend deno é um projeto back4app se você ainda não criou um faça login na sua conta back4app clique no botão “novo app” no seu painel back4app dê um nome ao seu app (por exemplo, “deno backend tutorial”) uma vez que seu projeto esteja pronto, ele aparecerá no seu painel back4app este projeto é onde você configurará bancos de dados, segurança e apis conectar ao back4app via rest como não temos um sdk parse para deno, usaremos os endpoints da api rest do back4app você pode encontrar o id do aplicativo , chave da api rest , e url do servidor na seção configurações do app ou segurança e chaves do seu app ao longo deste tutorial, usaremos fetch para enviar solicitações do deno para o back4app certifique se de incluir sua chave de api e o tipo de conteúdo dos cabeçalhos em cada chamada passo 2 – configurando o banco de dados neste passo, você criará um modelo de dados no back4app e interagirá com ele usando apis rest do deno criando um modelo de dados vá para a seção “banco de dados” no seu painel do back4app clique em “criar uma nova classe” e nomeie a, por exemplo, “todo ” adicione colunas relevantes (por exemplo, título (string), estácompleto (boolean)) você também pode permitir que o parse crie essas colunas automaticamente quando os dados forem salvos criando um modelo de dados com o agente de ia o agente de ia do back4app pode projetar seu esquema para você abra o agente de ia no seu painel do back4app descreva seu modelo de dados (por exemplo, “crie uma classe todo com um título, descrição e campo iscompleted ”) permita que o agente gere o esquema automaticamente isso ajuda você a gerenciar esquemas mais complexos rapidamente lendo e escrevendo dados usando a api rest a partir do deno, você pode executar o servidor chamando endpoints rest com fetch por exemplo, para criar um todo // file called createtodo ts export async function createtodoitem(title string, iscompleted boolean) { const url = "https //parseapi back4app com/classes/todo"; const body = json stringify({ title, iscompleted }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); if (!response ok) { throw new error(`error saving todo ${response statustext}`); } const result = await response json(); return result; } para buscar todos // file called fetchtodos ts export async function fetchtodos() { const url = "https //parseapi back4app com/classes/todo"; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); if (!response ok) { throw new error(`error fetching todos ${response statustext}`); } const result = await response json(); return result; } você pode executar esses com deno run allow net createtodo ts lendo e escrevendo dados usando a api graphql back4app também fornece um endpoint graphql https //parseapi back4app com/graphql // file called createtodographql ts export async function createtodographql(title string) { const mutation = ` mutation { createtodo(input { fields { title "${title}" iscompleted false } }) { todo { objectid title iscompleted } } } `; const response = await fetch("https //parseapi back4app com/graphql", { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body json stringify({ query mutation }), }); const result = await response json(); return result; } trabalhando com consultas ao vivo (opcional) consultas ao vivo atualizam você em tempo real, mas o deno não possui uma biblioteca nativa de parse livequery você ainda pode configurar o recurso de consulta ao vivo no seu painel do back4app para outros clientes ou usar um websocket no deno para se inscrever manualmente para mais detalhes, veja a documentação de consultas ao vivo https //www back4app com/docs/platform/live queries passo 3 – aplicando segurança com acls e clps visão geral as acls (listas de controle de acesso) e clps (permissões de nível de classe) do back4app protegem seus dados use clps para definir regras padrão para uma classe inteira em seguida, use acls para restrições em nível de objeto configurando permissões de nível de classe abra o banco de dados na sua dashboard do back4app selecione uma classe (por exemplo, “todo”) vá para as permissões de nível de classe aba ative ou desative o acesso de leitura/gravação para o público ou para usuários autenticados conforme necessário configurando acls ao criar ou atualizar um objeto via rest, você pode incluir um atributo acl no corpo da solicitação por exemplo const body = json stringify({ title "private task", acl { " " { "read" false, "write" false }, "role\ admins" { "read" true, "write" true }, } }); este exemplo permite apenas que o papel “admins” leia ou escreva o acesso público está desativado passo 4 – escrevendo funções de código em nuvem por que código em nuvem o código em nuvem é onde você armazena lógica segura do lado do servidor você não gerencia servidores por conta própria você pode adicionar validações ou gatilhos para classes específicas exemplo de função de código em nuvem você pode definir uma função em nuvem (em javascript) e implantá la em seu aplicativo por exemplo, uma função para verificar o comprimento do texto pode ser parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "text parameter is required"; } return { length text length }; }); implantação você pode implantar código através do back4app cli https //www back4app com/docs/local development/parse cli ou do painel de código em nuvem no seu painel do back4app npm no código em nuvem você pode importar bibliotecas externas com require() uma vez implantado, o ambiente do servidor as executará isso é útil para tarefas avançadas, mas lembre se de que executá las a partir do deno é separado do seu ambiente de código em nuvem no back4app passo 5 – configurando autenticação habilitar autenticação o back4app usa a classe parse user para autenticação enquanto você estiver trabalhando com deno, pode chamar endpoints rest para gerenciar usuários inscrever se e fazer login usando rest async function signupuser(username string, password string, email string) { const url = "https //parseapi back4app com/users"; const body = json stringify({ username, password, email }); const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "application/json", }, body, }); return await response json(); } async function loginuser(username string, password string) { const url = `https //parseapi back4app com/login?username=${username}\&password=${password}`; const response = await fetch(url, { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); return await response json(); } login social você pode configurar google, facebook, apple e outros provedores no back4app em seguida, você chamará os endpoints dedicados com tokens oauth veja a documentação de login social do back4app https //www back4app com/docs/platform/sign in with apple para detalhes passo 6 – manipulando armazenamento de arquivos carregar e recuperar arquivos para carregar arquivos do deno, use uma solicitação post para https //parseapi back4app com/files/\<filename> por exemplo async function uploadfile(filedata uint8array, filename string) { const url = `https //parseapi back4app com/files/${filename}`; const response = await fetch(url, { method "post", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", "content type" "image/png", }, body filedata, }); return await response json(); } você pode então armazenar a url do arquivo resultante em seus objetos de classe este método é perfeito para armazenar imagens ou documentos enquanto você executa o servidor no deno passo 7 – verificação de email e redefinição de senha visão geral verificar emails garante acesso legítimo a redefinição de senha ajuda os usuários a recuperar o acesso de forma segura configuração do painel ativar verificação de email no seu painel do back4app em configurações de email personalizar seus modelos de verificação ativar redefinição de senha e definir o layout de email preferido quando um usuário se inscreve, ele recebe um link de verificação se você ativou a verificação por e mail para redefinir a senha, chame o endpoint rest post /requestpasswordreset passo 8 – agendando tarefas com cloud jobs visão geral dos cloud jobs os cloud jobs são executados periodicamente sem intervenção humana por exemplo, você pode excluir registros antigos diariamente ou enviar lembretes de e mail rotineiros 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\ valueof() thirty days); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); após implantar este trabalho, você pode agendá lo em configurações do app > configurações do servidor > tarefas em segundo plano no seu painel do back4app passo 9 – integrando webhooks definição um webhook é um callback http acionado quando eventos acontecem, como criação ou atualização de objetos você pode integrar com slack, stripe ou qualquer serviço externo configuração abra “mais” > “webhooks” no painel do back4app clique em “adicionar webhook” e forneça o endpoint do seu serviço de terceiros defina quais acionadores ou classes você deseja enviar solicitações isso permite que sistemas externos recebam dados sempre que você criar ou modificar objetos no back4app passo 10 – explorando o painel de administração do back4app introdução ao painel de administração equipes não técnicas podem usar este painel para gerenciar dados visualmente ele simplifica operações crud e revisões de dados como habilitar vá para o painel do app > mais > app de administração e escolha “habilitar app de administração ” crie um usuário administrador para fazer login defina um subdomínio para seu app de administração você pode então fazer login no app de administração para gerenciar registros com segurança conclusão neste tutorial, você descobriu como construir um backend para deno no back4app você criou modelos de dados, lidou com autenticação de usuários, aprendeu sobre acls e clps para segurança, e agendou jobs na nuvem você também viu como integrar apis externas via webhooks e como executar o servidor ou apis rest com comandos deno run allow net esta configuração faz você começar rapidamente sem configurar manualmente sistemas de arquivos ou complexidades da biblioteca padrão para arquitetura de servidor próximos passos expanda seu aplicativo deno com endpoints adicionais e lógica avançada usando cloud code integre mais serviços (por exemplo, gateways de pagamento, análises) com seus dados do back4app consulte a documentação oficial do back4app para dicas mais profundas sobre segurança, desempenho e análise de logs experimente com recursos avançados em tempo real ou armazenamento deno kv, conectando dados entre seu runtime deno e o robusto ambiente do back4app com seu novo conhecimento, você pode implantar com confiança um backend deno seguro, escalável e repleto de recursos suportado pelo back4app