Quickstarters
Feature Overview
Como Construir um Backend para Android?
47 min
introdução neste tutorial, você aprenderá como construir um backend completo para um android (java) aplicação usando o back4app vamos passar pela 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)—para criar um backend seguro, escalável e robusto que se comunica perfeitamente com seu cliente android você também verá como a configuração rápida do back4app e o ambiente intuitivo podem reduzir drasticamente o tempo e o esforço em comparação com a configuração manual de servidores e bancos de dados ao longo do caminho, você ganhará experiência prática com funcionalidades chave, incluindo recursos avançados de segurança, agendamento de tarefas com cloud jobs e configuração de webhooks para integrações externas ao final deste tutorial, você estará bem preparado para aprimorar essa configuração básica em uma aplicação pronta para produção ou facilmente incorporar lógica personalizada e apis de terceiros conforme necessário pré requisitos para completar este tutorial, você precisará uma conta back4app e um novo projeto 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 siga o guia acima para preparar seu projeto ambiente básico de desenvolvimento android (java) você pode configurar isso usando android studio https //developer android com/studio ou uma ferramenta similar certifique se de ter o sdk android mais recente instalado java (versão 8 ou superior) você precisará do java para compilar e executar seu projeto android familiaridade com java e conceitos básicos de android documentação dos desenvolvedores android https //developer android com/docs se você é novo no android, revise a documentação oficial ou um tutorial para iniciantes antes de começar certifique se de ter todos esses pré requisitos em ordem antes de começar ter seu projeto back4app configurado e seu ambiente android local pronto ajudará você a acompanhar mais facilmente passo 1 – configurando o projeto back4app criar um novo projeto o primeiro passo para construir seu backend android no back4app é criar um novo projeto se você ainda não criou um, siga estas etapas faça login na sua conta back4app clique no botão “novo app” no seu painel do back4app dê um nome ao seu app (por exemplo, “android backend tutorial”) uma vez que o projeto é criado, você verá ele listado no seu painel do back4app este projeto será a base para todas as configurações de backend discutidas neste tutorial conectar o sdk parse o back4app depende da plataforma parse para gerenciar seus dados, fornecer recursos em tempo real, lidar com autenticação de usuários e mais conectar seu aplicativo android ao back4app envolve instalar o sdk android parse e inicializá lo com as credenciais do seu painel do back4app recupere suas chaves parse no seu painel do back4app, navegue até a seção “configurações do app” ou “segurança & chaves” para encontrar seu id da aplicação e chave do cliente (ou chave javascript se indicado) você também encontrará a url do servidor parse (geralmente no formato https //parseapi back4app com ) instale o sdk do parse no seu projeto android adicionando estas linhas ao seu module level build gradle dependencies { implementation "com github parse community parse sdk android\ parse\ latest version here" } se você precisar do repositório jitpack no seu root build gradle allprojects { repositories { maven { url "https //jitpack io" } } } inicialize o parse na sua aplicação android crie uma classe application personalizada (por exemplo, app java ) e configure o androidmanifest xml package com example app; import android app application; import com parse parse; public class app extends application { @override public void oncreate() { super oncreate(); parse initialize(new parse configuration builder(this) applicationid("your app id") // from back4app clientkey("your client key") // from back4app server("https //parseapi back4app com/") build() ); } } em seguida, adicione esta classe application personalizada no seu androidmanifest xml \<?xml version="1 0" encoding="utf 8"?> \<manifest > \<application android\ name=" app" > \</application> \</manifest> ao completar esta etapa, você estabeleceu uma conexão segura entre seu front end android e o backend do back4app todas as solicitações e transações de dados são roteadas de forma segura através deste sdk, reduzindo a complexidade de chamadas rest ou graphql manuais (embora você ainda possa usá las quando necessário) etapa 2 – configurando o banco de dados salvando e consultando dados com seu projeto back4app configurado e o sdk parse integrado ao seu aplicativo android, você pode agora começar a salvar e recuperar dados uma maneira típica de criar e salvar um registro é usar a parseobject classe parseobject gamescore = new parseobject("gamescore"); gamescore put("score", 1337); gamescore put("playername", "sean plott"); gamescore put("cheatmode", false); gamescore saveinbackground(e > { if (e == null) { // success! } else { // failed } }); para consultar os dados parsequery\<parseobject> query = parsequery getquery("gamescore"); query whereequalto("playername", "sean plott"); query findinbackground((objects, e) > { if (e == null) { // objects now contains the results } else { // something went wrong } }); alternativamente, você pode usar os endpoints da api 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 '{"score" 1337, "playername" "sean plott", "cheatmode" false}' \\ https //parseapi back4app com/classes/gamescore back4app também fornece uma interface graphql mutation { creategamescore(input { fields { score 1337 playername "sean plott" cheatmode false } }) { gamescore { objectid score playername cheatmode } } } mutation { creategamescore(input { fields { score 1337 playername "sean plott" cheatmode false } }) { gamescore { objectid score playername cheatmode } } } essas opções diversas permitem que você integre operações de dados da maneira que melhor se adapta ao seu processo de desenvolvimento—seja através do parse android sdk, rest ou graphql design de esquema e tipos de dados por padrão, o parse permite criação de esquema em tempo real , mas você também pode definir suas classes e tipos de dados no painel do back4app para mais controle navegue até a seção “banco de dados” no seu painel do back4app crie uma nova classe (por exemplo, “gamescore”) e adicione colunas relevantes o back4app também suporta vários tipos de dados string , número , booleano , objeto , data , arquivo , ponteiro, array, relação , geopoint , e polígono você pode escolher o tipo apropriado para cada campo o back4app oferece um agente de ia que pode ajudá lo a projetar seu modelo de dados abra o agente de ia a partir do seu painel de aplicativos ou no menu descreva seu modelo de dados em linguagem simples (por exemplo, “por favor, crie um novo aplicativo todo com um esquema de classe completo ”) deixe o agente de ia criar o esquema para você dados relacionais se você tiver dados relacionais—digamos, um categoria objeto que aponta para múltiplos gamescore objetos—você pode usar pointers ou relations no parse por exemplo // linking a gamescore to a category with a pointer public void creategamescoreforcategory(string categoryobjectid, int scorevalue) { parseobject gamescore = new parseobject("gamescore"); // construct a pointer to the category parseobject categorypointer = parseobject createwithoutdata("category", categoryobjectid); // set fields gamescore put("score", scorevalue); gamescore put("category", categorypointer); gamescore saveinbackground(e > { if (e == null) { // success } else { // error } }); } quando você consulta, pode incluir dados de ponteiro parsequery\<parseobject> query = parsequery getquery("gamescore"); query include("category"); query findinbackground((scores, e) > { if (e == null) { // scores now has category details } }); consultas ao vivo para atualizações em tempo real, o back4app fornece live queries você pode se inscrever para mudanças em uma classe específica a partir do seu aplicativo android ative as live queries no seu painel do back4app sob as configurações do servidor do seu aplicativo inicialize a live query no seu código no android, você normalmente depende da biblioteca parse livequery android https //github com/parse community/parselivequery android para se inscrever os passos são semelhantes a outras plataformas, mas você integrará um livequeryclient dependencies { implementation "com github parse community\ parselivequery android\ latest version here" } então livequeryclient livequeryclient = new livequeryclient builder("wss\ //your subdomain here b4a io", 443) build(); parsequery\<parseobject> query = parsequery getquery("gamescore"); subscriptionhandling\<parseobject> subscriptionhandling = livequeryclient subscribe(query); subscriptionhandling handleevents((query1, event, gamescore) > { switch (event) { case create // a new gamescore object was created break; case update // existing gamescore updated break; case delete // existing gamescore deleted break; default break; } }); ao se inscrever, você recebe notificações em tempo real sempre que um novo registro é criado, atualizado ou deletado este recurso é particularmente valioso para aplicativos colaborativos ou dinâmicos onde múltiplos usuários precisam ver os dados mais recentes sem atualizar a página passo 3 – aplicando segurança com acls e clps mecanismo de segurança back4app back4app leva a segurança a sério, fornecendo listas de controle de acesso (acls) e permissões de nível de classe (clps) esses recursos permitem restringir quem pode ler ou escrever dados em uma base por objeto ou por classe, garantindo que apenas usuários autorizados possam modificar seus dados listas de controle de acesso (acls) um acl é aplicado a objetos individuais para determinar quais usuários, funções ou o público podem realizar operações de leitura/gravação por exemplo public void createprivatescore(int scorevalue, parseuser owneruser) { parseobject gamescore = new parseobject("gamescore"); gamescore put("score", scorevalue); parseacl acl = new parseacl(owneruser); acl setpublicreadaccess(false); acl setpublicwriteaccess(false); gamescore setacl(acl); gamescore saveinbackground(e > { if (e == null) { // success } else { // failed } }); } permissões de nível de classe (clps) clps governam as permissões padrão de toda a classe, como se a classe é publicamente legível ou gravável, ou se apenas certos papéis podem acessá la vá para o seu painel do back4app , selecione seu aplicativo e abra a base de dados seção selecione uma classe (por exemplo, “gamescore”) abra as permissões de nível de classe aba configure seus padrões essas permissões definem a linha de base, enquanto os acls ajustam as permissões para objetos individuais um modelo de segurança robusto geralmente combina tanto clps (restrições amplas) quanto acls (restrições detalhadas por objeto) para mais informações, vá para diretrizes de segurança do aplicativo https //www back4app com/docs/security/parse security passo 4 – escrevendo e implantando funções de código em nuvem por que cloud code cloud code é um recurso do ambiente parse server que permite executar código javascript personalizado no lado do servidor—sem precisar gerenciar seus servidores ou infraestrutura ao escrever cloud code, você pode estender seu backend back4app com lógica de negócios adicional, validações, gatilhos e integrações que são executadas de forma segura e eficiente no parse server função de exemplo uma função simples de cloud code que calcula o comprimento de uma string de texto enviada do cliente main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); implantação back4app cli painel no painel do seu aplicativo, vá para cloud code > funções copie/cole seu código em main js e clique em implantar chamando sua função do android (java) usando o sdk parse hashmap\<string, object> params = new hashmap<>(); params put("text", "hello back4app"); parsecloud callfunctioninbackground("calculatetextlength", params, (result, e) > { if (e == null) { // result is a hashmap; get the length map\<?, ?> mapresult = (map\<?, ?>) result; object lengthval = mapresult get("length"); // cast to number, etc } else { // handle error } }); você também pode chamá lo via rest ou graphql essa flexibilidade permite que você integre sua lógica personalizada em seu frontend android ou qualquer outro cliente que suporte rest ou graphql passo 5 – configurando a autenticação do usuário autenticação de usuário no back4app o back4app utiliza a classe parse user como base para autenticação por padrão, o parse lida com a hash de senhas, tokens de sessão e armazenamento seguro isso significa que você não precisa configurar fluxos de segurança complexos manualmente configurando a autenticação do usuário em um aplicativo android usando java, você pode criar um novo usuário parseuser user = new parseuser(); user setusername("myusername"); user setpassword("mypassword"); user setemail("email\@example com"); user signupinbackground(e > { if (e == null) { // sign up success } else { // sign up failed } }); faça login de um usuário existente parseuser logininbackground("myusername", "mypassword", (parseuser, e) > { if (e == null) { // logged in successfully } else { // login failed } }); via rest, um login pode parecer curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login gerenciamento de sessão após um login bem sucedido, o parse cria um token de sessão armazenado no objeto do usuário você pode verificar o usuário atualmente logado parseuser currentuser = parseuser getcurrentuser(); if (currentuser != null) { // user is logged in } else { // no user is logged in } você pode sair parseuser logout(); integração de login social back4app e parse podem se integrar com provedores populares de oauth como google ou facebook por exemplo, você pode configurar o facebook login configurando o facebook app id e usando o parse facebookutils dedicado para android as instruções detalhadas variam, então consulte documentação de login social https //www back4app com/docs/platform/sign in with apple verificação de email e redefinição de senha para habilitar a verificação de email e a redefinição de senha navegue até as configurações de email no seu painel do back4app habilite a verificação de email configure o endereço de envio e os templates de email isso ajuda a garantir que o email do seu usuário seja válido e fornece um método seguro de recuperação de senha passo 6 – gerenciando armazenamento de arquivos carregando e recuperando arquivos parse inclui a classe parsefile para gerenciar uploads de arquivos, que o back4app armazena de forma segura file file = new file("/path/to/image jpg"); byte\[] data = // read file as bytes parsefile parsefile = new parsefile("image jpg", data); parsefile saveinbackground(e > { if (e == null) { // file saved } else { // error } }); anexe o arquivo a um objeto parseobject photo = new parseobject("photo"); photo put("imagefile", parsefile); photo saveinbackground(); recupere a url do arquivo parsefile imagefile = photo getparsefile("imagefile"); string url = imagefile geturl(); segurança de arquivos o parse server fornece configurações flexíveis para gerenciar a segurança do upload de arquivos, incluindo o controle sobre se usuários anônimos ou autenticados podem fazer uploads certifique se de verificar a documentação para configurações mais avançadas passo 7 – verificação de email e redefinição de senha visão geral verificar emails garante que novos usuários possuam o endereço de email usado para se inscrever a redefinição de senhas permite que os usuários recuperem suas contas de forma segura configuração do painel back4app ativar verificação de email no painel do seu aplicativo, vá para configurações de email ativar redefinição de senha configure o fluxo de email para redefinição de senha código/implementação acionando a redefinição de senha em java parseuser requestpasswordresetinbackground("email\@example com", e > { if (e == null) { // email sent } else { // something went wrong } }); passo 8 – agendamento de tarefas com cloud jobs cloud jobs use cloud jobs no back4app para agendar tarefas recorrentes, como limpar dados antigos ou enviar emails diários exemplo parse cloud job('cleanupoldscores', async (request) => { const gamescore = parse object extend('gamescore'); const query = new parse query(gamescore); // e g , remove scores older than 30 days // }); agende o no painel do back4app > configurações do aplicativo > configurações do servidor > tarefas em segundo plano passo 9 – integrando webhooks webhooks permitem que seu aplicativo back4app envie requisições http para um serviço externo sempre que certos eventos ocorrerem, por exemplo, enviando dados para um serviço de terceiros como o stripe navegue até webhooks no seu painel do back4app > mais > webhooks adicionar webhook com seu endpoint externo configurar gatilhos para eventos relevantes passo 10 – explorando o painel de administração do back4app o back4app admin app é uma interface de gerenciamento baseada na web projetada para usuários não técnicos ela permite operações crud rápidas e gerenciamento rotineiro de dados sem a necessidade de escrever código habilitando o app de administração vá para painel do app > mais > app de administração e clique em habilitar app de administração criar um primeiro usuário admin e subdomínio, e você terá uma interface web para administração de dados conclusão seguindo este tutorial abrangente, você criou um backend seguro para um aplicativo android (java) no back4app configurou um banco de dados com esquemas de classe, tipos de dados e relacionamentos integrou consultas em tempo real (consultas ao vivo) para atualizações imediatas de dados aplicou medidas de segurança usando acls e clps para proteger e gerenciar o acesso aos dados implementou funções de cloud code para executar lógica de negócios personalizada no lado do servidor configurou autenticação de usuário com suporte para verificação de e mail e redefinições de senha gerenciou uploads de arquivos e recuperação, com controles de segurança de arquivos opcionais agendou tarefas em nuvem para tarefas automatizadas em segundo plano usou webhooks para integrar com serviços externos explorou o painel de admin do back4app para gerenciamento de dados com um frontend android sólido (java) e um robusto backend back4app, você agora está bem equipado para desenvolver aplicações ricas em recursos, escaláveis e seguras continue explorando funcionalidades mais avançadas, integre sua lógica de negócios e aproveite o poder do back4app para economizar inúmeras horas na administração de servidores e bancos de dados boa codificação! próximos passos construa um aplicativo android pronto para produção estendendo este backend para lidar com modelos de dados mais complexos, estratégias de cache e otimizações de desempenho integre recursos avançados como fluxos de autenticação especializados, controle de acesso baseado em funções ou apis externas (como gateways de pagamento) confira a documentação oficial do back4app para mergulhos mais profundos em segurança avançada, ajuste de desempenho e análise de logs explore outros tutoriais sobre aplicações de chat em tempo real, painéis de iot ou serviços baseados em localização você pode combinar as técnicas aprendidas aqui com apis de terceiros para criar aplicações complexas do mundo real