Quickstarters
Feature Overview
Como construir um backend para Xamarin?
30 min
introdução neste tutorial, você aprenderá como construir um backend para seus xamarin aplicativos móveis usando os poderosos recursos do back4app nós iremos nos basear na api rest , graphql , e outras opções de api web em vez de usar um sdk dedicado essa abordagem mantém seu cliente móvel leve e flexível, permitindo que você se conecte aos seus dados através de chamadas http simples vamos abordar a criação de modelos de banco de dados, aplicação de segurança, gerenciamento de autenticação e realização de operações com arquivos seguindo estas etapas, você verá como construir um backend para xamarin de forma rápida e segura você também explorará o agendamento de tarefas automatizadas e a integração de webhooks para estender a funcionalidade do seu xamarin aplicativo, para que você possa se concentrar em codificar sua interface em vez de lidar com configurações de servidor depois de completar este guia, você terá um modelo reutilizável para construir aplicativos móveis que dependem do back4app para seu backend você também entenderá como aplicar listas de controle de acesso (acls), escrever código em nuvem (se necessário), e incorporar fluxos de trabalho avançados como consultas ao vivo ou tarefas em nuvem em sua solução final pré requisitos para aproveitar ao máximo este tutorial, certifique se de que você tem uma conta no back4app inscreva se gratuitamente aqui https //www back4app com/ um novo projeto no back4app começando com o back4app https //www back4app com/docs/get started/new parse app ambiente de desenvolvimento xamarin (visual studio ou visual studio para mac) documentação de instalação do xamarin https //docs microsoft com/en us/xamarin/get started/installation/ conhecimento básico de c# e xamarin (incluindo como fazer solicitações de api web de uma classe pública em c#) com esses pré requisitos prontos, você estará preparado para acompanhar e conectar seu projeto xamarin ao back4app passo 1 – criando um novo projeto no back4app e conectando crie um projeto no back4app no seu painel do back4app esta é a base para o seu backend nomeie seu projeto (por exemplo, “xamarin backend tutorial”) localize suas chaves de aplicativo indo para a seção “segurança e chaves” do aplicativo você verá as chaves rest, graphql ou outras que pode usar ao fazer solicitações do seu cliente móvel configure seu projeto xamarin para fazer solicitações http em vez de um sdk parse, você usará httpclient , ou qualquer biblioteca de rede que preferir, para chamar os rest ou graphql endpoints do seu aplicativo back4app por exemplo, você pode armazenar seu id da aplicação e chave da api rest em um lugar seguro ou em um arquivo de constantes public class back4appconstants { public const string appid = "your application id"; public const string restapikey = "your rest api key"; public const string serverurl = "https //parseapi back4app com"; } ao chamar a api web , sempre inclua essas credenciais nos cabeçalhos da sua solicitação isso garante que suas solicitações sejam direcionadas para o aplicativo correto com a autorização necessária passo 2 – configurando o banco de dados 1\ criando um modelo de dados use o painel do back4app para definir suas classes ou deixe que elas sejam criadas dinamicamente na primeira solicitação por exemplo, se você quiser uma todo classe, você pode criá la na seção banco de dados ou dinamicamente via rest api chamadas 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 2\ criando um modelo de dados usando o agente de ia o back4app fornece um agente de ia que pode gerar estruturas de classe completas abra o agente de ia no seu projeto back4app descreva seu modelo (por exemplo, “por favor, crie uma nova classe chamada ‘todo’ com os campos título e iscompleted ”) confirme para gerar o esquema automaticamente 3\ lendo e escrevendo dados (rest) dentro do seu xamarin projeto, você pode escrever uma public class (por exemplo, restclient ) que lida com todas as requisições para o back4app using system net http; using system text; using newtonsoft json; public class restclient { private readonly httpclient client; public restclient() { client = new httpclient(); client defaultrequestheaders add("x parse application id", back4appconstants appid); client defaultrequestheaders add("x parse rest api key", back4appconstants restapikey); } public async task createtodoasync(string title, bool iscompleted) { var newtodo = new { title = title, iscompleted = iscompleted }; var content = new stringcontent(jsonconvert serializeobject(newtodo), encoding utf8, "application/json"); var response = await client postasync($"{back4appconstants serverurl}/classes/todo", content); // handle the response } public async task\<list\<todo>> gettodosasync() { var response = await client getasync($"{back4appconstants serverurl}/classes/todo"); var jsonstring = await response content readasstringasync(); // parse json into a c# model (todo) // return the result // return new list\<todo>(); // placeholder } } public class todo { public string objectid { get; set; } public string title { get; set; } public bool iscompleted { get; set; } } 4\ lendo e escrevendo dados (graphql) para consultas graphql, você pode enviar requisições para o endpoint graphql do back4app curl x post \\ h "content type application/json" \\ h "x parse application id your application id" \\ h "x parse master key your master key" \\ \ data '{"query" "mutation { createtodo(input {fields {title \\"wash the car\\" iscompleted\ false}}){ todo{ objectid title }}}"}' \\ https //parseapi back4app com/graphql da mesma forma, do xamarin, você poderia post um corpo json com sua string graphql para https //parseapi back4app com/graphql 5\ trabalhando com consultas ao vivo (opcional) embora você esteja usando chamadas de api da web em vez do sdk do parse, ainda pode habilitar consultas ao vivo se quiser atualizações de dados em tempo real você usaria conexões especializadas (websockets) para se inscrever em mudanças de classe habilitar consultas ao vivo nas configurações do servidor do seu aplicativo no back4app, e então usar uma biblioteca de cliente compatível no xamarin, se disponível alternativamente, você pode construir sua própria solução websocket ou depender de polls se o suporte em tempo real for opcional para seu aplicativo passo 3 – aplicando segurança com acls e clps 1\ visão geral de acls e clps a segurança do back4app inclui permissões em nível de classe (clps) e listas de controle de acesso (acls) clps definem quais usuários ou funções podem ler/escrever em uma classe inteira acls adicionam segurança por objeto combine os para garantir que apenas usuários autorizados possam manipular seus dados 2\ configurando permissões em nível de classe abra a seção banco de dados no back4app selecione sua classe (como todo) vá para permissões em nível de classe para definir regras de leitura/escrita você pode permitir que apenas usuários autenticados leiam ou escrevam isso garante que seu cliente móvel deve fazer login antes de ler os dados passo 4 – escrevendo funções de código em nuvem 1\ por que código em nuvem o código em nuvem permite que você execute lógica personalizada do lado do servidor você pode criar regras de negócios, validações ou gatilhos que são executados quando os dados mudam isso reduz o risco de manipulação, uma vez que a lógica é executada fora do cliente móvel 2\ exemplo de função e gatilhos abaixo está um exemplo simplificado de uma função em nuvem no arquivo main js parse cloud define('helloxamarin', async (request) => { return 'hello from xamarin cloud code!'; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'title is required'; } }); 3\ implantação para implantar, você pode usar o back4app cli ou a seção de código em nuvem no seu painel uma vez implantado, você pode chamar suas funções do xamarin via rest 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 '{}' \\ https //parseapi back4app com/functions/helloxamarin 4\ módulos npm se você precisar de bibliotecas extras, instale as via npm na pasta do seu projeto de cloud code depois disso, require elas no seu main js essa abordagem é útil para chamar apis de terceiros do lado do servidor passo 5 – configurando autenticação 1\ habilitar autenticação de usuário no back4app, a user classe gerencia as credenciais do usuário em configurações do app , você pode habilitar a autenticação de usuário, verificação de e mail e configurações de redefinição de senha 2\ cadastro / login de usuário (rest) do seu projeto xamarin, você pode escrever métodos c# para lidar com cadastro e login public async task signupuserasync(string username, string password, string email) { var user = new { username = username, password = password, email = email }; var content = new stringcontent(jsonconvert serializeobject(user), encoding utf8, "application/json"); var response = await client postasync($"{back4appconstants serverurl}/users", content); // parse response } public async task loginuserasync(string username, string password) { var loginendpoint = $"{back4appconstants serverurl}/login?username={username}\&password={password}"; var response = await client getasync(loginendpoint); // parse response } você pode então armazenar tokens de sessão do lado do cliente para futuras requisições 3\ login social para integrar logins sociais (por exemplo, google, facebook), consulte a documentação de login social do back4app https //www back4app com/docs/platform/sign in with apple cada provedor tem seu próprio fluxo oauth, que você pode gerenciar a partir do seu cliente móvel em seguida, passe os tokens retornados para o back4app passo 6 – gerenciamento de armazenamento de arquivos 1\ configurando o armazenamento de arquivos os arquivos podem ser enviados fazendo uma solicitação post com os dados do arquivo no corpo por exemplo, para armazenar uma imagem do seu aplicativo xamarin, leia a imagem em um array de bytes e, em seguida, envie curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type image/png" \\ \ data binary "@local image png" \\ https //parseapi back4app com/files/myimage png 2\ exemplo de upload com c# public async task\<string> uploadfileasync(byte\[] filedata, string filename) { var filecontent = new bytearraycontent(filedata); filecontent headers contenttype = new system net http headers mediatypeheadervalue("image/png"); var response = await client postasync($"{back4appconstants serverurl}/files/{filename}", filecontent); var jsonresponse = await response content readasstringasync(); // parse the response to get file url return "file url from response"; } 3\ considerações de segurança para garantir uploads de arquivos, vá para as configurações do servidor no back4app e ajuste as permissões de arquivo por exemplo, você pode permitir que apenas usuários autenticados façam uploads passo 7 – verificação de email e redefinição de senha 1\ visão geral a verificação de email garante que os usuários possuam o email com o qual se registraram os links de redefinição de senha permitem que eles recuperem o acesso caso esqueçam suas senhas 2\ configuração do painel do back4app ative a verificação de email em configurações de email edite o modelo de redefinição de senha e defina o endereço “de” você também pode personalizar o conteúdo do email para combinar com sua marca 3\ implementação uma vez ativado, se um usuário se inscrever com um email, ele receberá um link de verificação chamadas de redefinição de senha são feitas para a mesma api base com o email do usuário para acionar um email de redefinição passo 8 – agendando tarefas com cloud jobs 1\ o que os cloud jobs fazem cloud jobs permitem que você agende tarefas rotineiras, como limpar dados antigos ou enviar emails de resumo diários, tudo a partir da plataforma back4app 2\ exemplo 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 ago = new date(now 30 24 60 60 1000); query lessthan('createdat', thirty days ago); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old items `; }); implante o cloud code, depois agende o trabalho em configurações do app > configurações do servidor > tarefas em segundo plano passo 9 – integrando webhooks defina um webhook no back4app navegando até mais > webhooks e clicando em “adicionar webhook ” forneça o endpoint, como https //your service com/webhook endpoint escolha gatilhos, como “novo objeto na classe todo ” webhooks podem notificar serviços de terceiros, para que seu aplicativo xamarin possa permanecer leve enquanto sistemas externos lidam com lógica ou notificações adicionais passo 10 – explorando o painel de administração do back4app o aplicativo de administração do back4app é uma maneira amigável de lidar com operações crud sem escrever consultas ative o em painel do aplicativo > mais > aplicativo de administração crie um usuário administrador, escolha um subdomínio e faça login este aplicativo de administração é ideal para membros da equipe não técnicos que precisam gerenciar dados, mas não devem ter acesso direto ao banco de dados conclusão você acabou de ver como construir um backend para xamarin usando back4app apis você criou classes seguras, adicionou clps e acls , lidou com autenticação e explorou uploads de arquivos, agendamento de tarefas e integração com serviços externos essa abordagem garante que seus aplicativos móveis permaneçam rápidos e flexíveis enquanto aproveitam o poder de um banco de dados hospedado e um ambiente em nuvem próximos passos expanda seu aplicativo xamarin para lidar com lógica mais complexa, cache ou funções e permissões avançadas mergulhe em recursos avançados , como notificações push, ou integre dados em tempo real com consultas ao vivo se precisar de atualizações colaborativas visite a documentação oficial do back4app para guias mais profundos sobre segurança, desempenho e depuração crie soluções do mundo real misturando apis de terceiros (gateways de pagamento, análises, redes sociais) com seu backend do back4app essa combinação pode melhorar a funcionalidade do seu cliente móvel e manter seu código organizado