Quickstarters
Feature Overview
Como Construir um Backend para Ruby?
35 min
introdução neste tutorial, você descobrirá como construir um backend para ruby usando o back4app vamos percorrer 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 (consultas ao vivo) ao aproveitar a linguagem de programação ruby e o back4app, você obtém um backend seguro, escalável e robusto que se integra facilmente ao seu ecossistema de desenvolvimento de software essa abordagem economiza tempo e esforço ao usar uma plataforma web de código aberto construída sobre o parse você verá como acelerar projetos de desenvolvimento com princípios de desenvolvimento rápido ao longo do caminho, você aprenderá a usar recursos avançados de segurança, agendar tarefas com cloud jobs e configurar webhooks para integrações externas ao final, você estará pronto para criar uma estrutura de framework de aplicação web e expandi la para aplicações de produção você poderá integrar ruby com back4app para modelos de dados, lógica orientada a objetos e dados em tempo real aproveitar as melhores práticas do processo de desenvolvimento para o desenvolvimento de aplicações em um estilo de controlador de visualização de modelo (mvc) ou qualquer outra arquitetura que você preferir aprimorar seu papel como desenvolvedor backend lidando com autenticação de usuário segura, gatilhos de cloud code e mais refinar ainda mais suas aplicações web para atender às necessidades do mundo real usando os recursos flexíveis do back4app pré requisitos uma conta back4app e um novo projeto back4app começando com back4app https //www back4app com/docs/get started/new parse app inscreva se gratuitamente se você não tiver uma conta um ambiente ruby local você deve ter ruby https //www ruby lang org/en/documentation/installation/ instalado normalmente, ruby 2 6 ou superior é recomendado familiaridade com a linguagem de programação ruby conhecimento básico da sintaxe ruby, orientação a objetos conceitos e uso comum de linguagens de programação bundler (opcional, mas recomendado) bundler ajuda a gerenciar gems para seu framework de aplicação web ou projetos de desenvolvimento documentação oficial do bundler https //bundler io/ certifique se de ter todos esses pré requisitos em ordem antes de começar ter seu projeto back4app criado e seu ambiente ruby pronto proporcionará uma experiência de tutorial tranquila passo 1 – criando um novo projeto no back4app e conectando por que esta etapa é importante um novo projeto back4app é a base para o seu desenvolvimento de aplicativos ele hospeda seu banco de dados, gerencia a autenticação de usuários e fornece o ambiente para executar cloud code criar um novo projeto faça login no back4app clique em novo app no seu painel do back4app dê um nome ao seu app (por exemplo, “ruby backend tutorial”) instalar parse sdk e conectar ao back4app o parse sdk para ruby ajuda você a interagir com o backend do back4app você pode instalá lo via gem etapa 2 – configurando o banco de dados 1\ criando um modelo de dados no back4app, uma classe é como uma tabela de banco de dados por exemplo, você pode criar uma classe “todo” para armazenar tarefas você pode criar classes dinamicamente a partir do ruby ou defini las no painel para um controle mais detalhado 2\ criando um modelo de dados usando o agente de ia abra o agente de ia no seu painel de aplicativos descreva seu modelo de dados em linguagem simples (por exemplo, “um app todo com campos de título e iscompleted”) deixe o agente de ia criar seu esquema automaticamente 3\ lendo e escrevendo dados usando ruby (parse sdk) abaixo está um exemplo simples de como criar um novo registro em uma classe “todo” usando o sdk ruby require relative 'parse config' \# create a todo object todo = parse object new("todo") todo\["title"] = "buy groceries" todo\["iscompleted"] = false saved todo = todo save puts "todo saved with objectid #{saved todo\['objectid']}" \# query todos query = parse query new("todo") results = query get puts "fetched #{results size} todos " results each do |t| puts "title #{t\['title']}, completed #{t\['iscompleted']}" end 4\ lendo e escrevendo dados usando a api rest você também pode criar e recuperar registros usando a interface rest 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 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 5\ lendo e escrevendo dados usando a api graphql back4app oferece um endpoint graphql para aplicações web mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6\ trabalhando com consultas ao vivo (opcional) ative consultas ao vivo no painel do back4app (configurações do servidor) e inscreva se a partir do seu script ruby se seu ambiente suportar conexões websocket você também pode usá las para atualizações em tempo real em um framework de aplicação web que suporte concorrência passo 3 – aplicando segurança com acls e clps 1\ visão geral acls (listas de controle de acesso) e clps (permissões em nível de classe) protegem seus dados de maneiras orientadas a objetos acls permitem que você decida quem pode ler ou escrever cada registro clps permitem que você gerencie permissões para uma classe inteira 2\ configurando permissões em nível de classe (clps) e acls vá para a seção banco de dados do seu aplicativo e selecione sua classe, como “todo ” configure os clps da sua classe em “segurança” ou “permissões em nível de classe ” para definir acls em um registro owner = parse user current todo = parse object new("todo") acl = parse acl new(owner) acl public read = false acl public write = false todo acl = acl todo\["title"] = "private task" todo save isso garante que apenas o proprietário possa ler/escrever essa tarefa específica passo 4 – escrevendo funções de código em nuvem 1\ por que código em nuvem o código em nuvem ajuda a incorporar lógica de negócios e validações diretamente no servidor é ideal para garantir a integridade dos dados e realizar tarefas não expostas aos clientes 2\ função de exemplo no arquivo main js (ou similar) no back4app, você pode definir uma função em nuvem parse cloud define('calculatetextlength', (request) => { const { text } = request params; if (!text) { throw 'no text provided'; } return { length text length }; }); nota embora nossa aplicação principal use ruby, o código em nuvem no parse é baseado em javascript é assim que você incorpora lógica do lado do servidor no back4app 3\ implantação back4app cli painel do back4app copie/cole sua função em código em nuvem > funções e clique em implantar 4\ módulos npm você pode instalar módulos npm (por exemplo, axios) para o seu ambiente de código em nuvem por exemplo npm install axios no seu main js , importe o e faça chamadas de api externas conforme necessário passo 5 – configurando a autenticação 1\ configurações do painel ative a autenticação de usuário nas configurações do app o back4app usa parse user para gerenciamento de usuários 2\ inscrição / login com ruby require relative 'parse config' \# signing up a user user = parse user new({ username "alice", password "secret123", email "alice\@example com" }) begin user sign up puts "user signed up successfully" rescue => e puts "error #{e message}" end \# logging in a user logged in user = parse user login("alice", "secret123") puts "logged in as #{logged in user username}" 3\ login social para integrar logins sociais (facebook, google, apple), consulte a documentação de login social https //www back4app com/docs/platform/sign in with apple os detalhes da implementação variam para cada provedor passo 6 – gerenciando o armazenamento de arquivos 1\ configurando o armazenamento de arquivos o back4app gerencia o upload de arquivos via o parse file objeto em ruby file = parse file new("image png", file read("/path/to/image png")) saved file = file save puts "file saved at #{saved file url}" \# attach file to an object photo = parse object new("photo") photo\["imagefile"] = saved file photo save puts "photo object created with file reference " 2\ exemplo os usuários podem enviar imagens, documentos ou outros arquivos recupere a url para exibi la em seu frontend ou outros serviços 3\ considerações de segurança configure seu aplicativo para restringir o upload de arquivos a usuários autenticados, se necessário passo 7 – verificação de email e redefinição de senha 1\ por que isso é importante a verificação de email garante endereços de email válidos para novas contas a redefinição de senha permite que seus usuários recuperem suas contas de forma segura 2\ configuração do painel back4app ativar verificação de email configurar modelos personalizados para verificação e redefinição de senha 3\ exemplo de código do ruby, você pode solicitar uma redefinição de senha 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" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset isso envia um link de redefinição de senha para o email do usuário passo 8 – agendamento de tarefas com cloud jobs 1\ o que os cloud jobs fazem trabalhos em nuvem executam tarefas periódicas, como limpar dados antigos ou enviar e mails de resumo 2\ exemplo de trabalho 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); agende o em configurações do app > configurações do servidor > trabalhos em segundo plano no seu painel do back4app passo 9 – integrando webhooks 1\ definição webhooks permitem que você envie requisições http para serviços externos sempre que certos eventos ocorrem no back4app isso é ótimo para vincular a serviços de terceiros ou acionar tarefas em outras linguagens de programação 2\ configuração vá para o painel do back4app do seu app > mais > webhooks , e adicione um novo webhook com a url do seu serviço externo 3\ exemplo envie dados para stripe ou slack sempre que um novo “todo” for criado alternativamente, você pode definir gatilhos no cloud code e fazer requisições http dentro desses gatilhos passo 10 – explorando o painel de administração do back4app 1\ onde encontrá lo no seu painel de aplicativo, clique em mais > aplicativo admin , então ative o 2\ recursos interface gráfica para gerenciamento de dados sem código ferramentas para analisar logs, agendar tarefas em segundo plano e mais controle de acesso baseado em funções, permitindo que você forneça a usuários não técnicos uma maneira segura de gerenciar conteúdo conclusão você construiu um backend seguro e escalável para seu aplicativo ruby no back4app, usando a linguagem de programação ruby para se conectar com a api parse seu processo de desenvolvimento agora inclui um banco de dados com recursos de segurança avançados (acls, clps) atualizações de dados em tempo real via consultas ao vivo gatilhos de código em nuvem para lógica de negócios personalizada autenticação de usuário e manipulação de arquivos tarefas agendadas com tarefas em nuvem e webhooks para serviços externos um painel admin amigável para gerenciamento de dados com esta base, você pode expandir suas aplicações web ou outros projetos de linguagens de programação para atender às exigências do mundo real se você é um desenvolvedor backend experiente ou está apenas começando com ruby, o back4app oferece uma plataforma orientada a objetos e fácil de usar para desenvolvimento rápido sinta se à vontade para integrar apis ou recursos adicionais e explorar mais personalizações para alinhar com padrões de modelo de visão controlador (mvc) ou outros estilos arquitetônicos próximos passos refine seu ambiente de produção adicionando cache avançado, acesso baseado em funções ou otimizações de desempenho adicione relacionamentos mais complexos entre classes de dados para potencializar casos de uso do mundo real explore a documentação oficial do back4app para segurança, insights de desempenho e análises experimente outros frameworks web de código aberto para expandir os recursos da sua aplicação aproveite para construir aplicações web mais robustas e ricas em recursos com ruby e back4app!