Quickstarters
Feature Overview
Come costruire un backend per Xamarin?
30 min
introduzione in questo tutorial, imparerai come costruire un backend per le tue app mobili xamarin utilizzando le potenti funzionalità di back4app ci baseremo sulla rest api , graphql , e altre opzioni di api web invece di utilizzare un sdk dedicato questo approccio mantiene il tuo client mobile leggero e flessibile, permettendoti di connetterti ai tuoi dati tramite semplici chiamate http tratteremo la creazione di modelli di database, l'applicazione della sicurezza, la gestione dell'autenticazione e l'esecuzione di operazioni sui file seguendo questi passaggi, vedrai come costruire rapidamente e in sicurezza un backend per xamarin esplorerai anche la pianificazione di attività automatizzate e l'integrazione di webhook per estendere la funzionalità della tua app xamarin , così potrai concentrarti sulla codifica della tua interfaccia utente invece di destreggiarti tra le configurazioni del server una volta completata questa guida, avrai un modello riutilizzabile per costruire app mobili che si basano su back4app per il loro backend capirai anche come applicare liste di controllo degli accessi (acl), scrivere codice cloud (se necessario), e incorporare flussi di lavoro avanzati come query live o lavori cloud nella tua soluzione finale requisiti preliminari per ottenere il massimo da questo tutorial, assicurati di avere un account back4app registrati gratuitamente qui https //www back4app com/ un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app ambiente di sviluppo xamarin (visual studio o visual studio per mac) documentazione sull'installazione di xamarin https //docs microsoft com/en us/xamarin/get started/installation/ conoscenze di base di c# e xamarin (incluso come effettuare richieste api web da una classe pubblica in c#) con questi requisiti preliminari pronti, sarai pronto a seguire e collegare il tuo progetto xamarin a back4app passo 1 – creare un nuovo progetto su back4app e connettersi crea un progetto back4app nel tuo dashboard di back4app questa è la base per il tuo backend dai un nome al tuo progetto (ad esempio, “xamarin backend tutorial”) trova le tue chiavi app andando nella sezione “sicurezza e chiavi” dell'app vedrai le chiavi rest, graphql o altre chiavi che potresti utilizzare quando fai richieste dal tuo client mobile configura il tuo progetto xamarin per effettuare richieste http invece di un sdk parse, utilizzerai o httpclient , o qualsiasi libreria di rete tu preferisca, per chiamare gli endpoint rest o graphql della tua app back4app ad esempio, puoi memorizzare il tuo id applicazione e chiave api rest in un luogo sicuro o in un file di costanti 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"; } quando chiami il web api , includi sempre queste credenziali nelle intestazioni della tua richiesta questo assicura che le tue richieste siano indirizzate all'app corretta con l'autorizzazione richiesta passo 2 – configurare il database 1\ creare un modello di dati utilizza il dashboard di back4app per definire le tue classi o lascia che vengano create dinamicamente alla prima richiesta ad esempio, se desideri una todo classe, puoi crearla nella sezione database o al volo tramite chiamate 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 2\ creare un modello di dati utilizzando l'agente ai back4app fornisce un agente ai che può generare strutture di classe complete apri l'agente ai nel tuo progetto back4app descrivi il tuo modello (ad esempio, “per favore crea una nuova classe chiamata ‘todo’ con i campi titolo e iscompleted ”) conferma per generare automaticamente lo schema 3\ lettura e scrittura dei dati (rest) all'interno del tuo xamarin progetto, puoi scrivere una public class (ad esempio, restclient ) che gestisce tutte le richieste a 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\ lettura e scrittura dei dati (graphql) per le query graphql, puoi inviare richieste all'endpoint graphql di 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 allo stesso modo, da xamarin, puoi postare un corpo json con la tua stringa graphql a https //parseapi back4app com/graphql 5\ lavorare con le query live (opzionale) sebbene tu stia utilizzando chiamate api web piuttosto che il parse sdk, puoi comunque abilitare le query live se desideri aggiornamenti dei dati in tempo reale utilizzeresti connessioni specializzate (websocket) per iscriverti alle modifiche delle classi abilita le query live dalle impostazioni del tuo server settings in back4app, quindi utilizza una libreria client compatibile in xamarin, se disponibile in alternativa, puoi costruire la tua soluzione websocket o fare affidamento su polling se il supporto in tempo reale è opzionale per la tua app passo 3 – applicare la sicurezza con acl e clp 1\ panoramica di acl e clp la sicurezza di back4app include permessi a livello di classe (clp) e liste di controllo degli accessi (acl) i clp definiscono quali utenti o ruoli possono leggere/scrivere a un'intera classe le acl aggiungono sicurezza per oggetto combinali per assicurarti che solo gli utenti autorizzati possano manipolare i tuoi dati 2\ impostare i permessi a livello di classe apri la sezione database su back4app seleziona la tua classe (come todo) vai ai permessi a livello di classe per impostare le regole di lettura/scrittura potresti consentire solo agli utenti autenticati di leggere o scrivere questo assicura che il tuo client mobile debba effettuare il login prima di leggere i dati passo 4 – scrivere funzioni di cloud code 1\ perché cloud code il cloud code ti consente di eseguire logica personalizzata lato server puoi creare regole aziendali, validazioni o trigger che vengono eseguiti quando i dati cambiano questo riduce il rischio di manomissione poiché la logica viene eseguita al di fuori del client mobile 2\ esempio di funzione e trigger di seguito è riportato un esempio semplificato di una funzione cloud nel file 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\ distribuzione per distribuire, puoi utilizzare il back4app cli o la sezione cloud code nel tuo dashboard una volta distribuito, puoi chiamare le tue funzioni da xamarin tramite 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\ moduli npm se hai bisogno di librerie extra, installale tramite npm nella cartella del tuo progetto cloud code dopo di che, require esse nel tuo main js questo approccio è utile per chiamare api di terze parti dal lato server passo 5 – configurazione dell'autenticazione 1\ abilita l'autenticazione utente in back4app, la user classe gestisce le credenziali degli utenti sotto impostazioni app , puoi abilitare l'autenticazione degli utenti, la verifica dell'email e le impostazioni di reimpostazione della password 2\ registrazione / accesso utente (rest) dal tuo progetto xamarin, puoi scrivere metodi c# per gestire la registrazione e l'accesso 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 } puoi quindi memorizzare i token di sessione lato client per richieste future 3\ accesso sociale per integrare accessi sociali (ad es , google, facebook), consulta la documentazione di accesso sociale di back4app https //www back4app com/docs/platform/sign in with apple ogni fornitore ha il proprio flusso oauth, che puoi gestire dal tuo client mobile poi, passa i token restituiti a back4app passaggio 6 – gestione dello storage dei file 1\ configurazione dello storage dei file i file possono essere caricati inviando una richiesta post con i dati del file nel corpo ad esempio, per memorizzare un'immagine dalla tua app xamarin, leggi l'immagine in un array di byte, quindi invia 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\ esempio di caricamento con 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\ considerazioni sulla sicurezza per garantire la sicurezza dei caricamenti di file, vai alle impostazioni del server di back4app e regola le autorizzazioni dei file ad esempio, puoi consentire solo agli utenti autenticati di caricare passaggio 7 – verifica email e ripristino password 1\ panoramica la verifica dell'email assicura che gli utenti possiedano l'email con cui si sono registrati i link per il ripristino della password consentono loro di riacquistare l'accesso se dimenticano le loro password 2\ configurazione del dashboard di back4app abilita verifica email sotto impostazioni email modifica il modello di reset della password e imposta l'indirizzo “da” puoi anche personalizzare il contenuto dell'email per adattarlo al tuo marchio 3\ implementazione una volta abilitato, se un utente si registra con un'email, riceverà un link di verifica le chiamate per il reset della password vengono effettuate alla stessa api di base con l'email dell'utente per attivare un'email di reset passo 8 – pianificazione dei compiti con cloud jobs 1\ cosa fanno i cloud jobs i cloud jobs ti permettono di pianificare compiti di routine, come la pulizia dei dati obsoleti o l'invio di email di riepilogo giornaliere, tutto dalla piattaforma back4app 2\ esempio 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 `; }); distribuisci il cloud code, quindi pianifica il lavoro sotto impostazioni app > impostazioni server > compiti in background passo 9 – integrazione dei webhook definisci un webhook su back4app navigando su altro > webhooks e cliccando “aggiungi webhook ” fornisci l'endpoint, come https //your service com/webhook endpoint scegli i trigger, come “nuovo oggetto nella classe todo ” i webhook possono notificare servizi di terze parti, quindi la tua app xamarin può rimanere leggera mentre i sistemi esterni gestiscono logiche o notifiche aggiuntive passo 10 – esplorare il pannello di amministrazione di back4app l' app di amministrazione di back4app è un modo intuitivo per gestire le operazioni crud senza scrivere query abilitalo in app dashboard > altro > app di amministrazione crea un utente amministratore, scegli un sottodominio e accedi questa app di amministrazione è ideale per i membri del team non tecnici che devono gestire i dati ma non dovrebbero avere accesso diretto al database conclusione hai appena visto come costruire un backend per xamarin utilizzando back4app api hai creato classi sicure, aggiunto clp e acl , gestito l'autenticazione e esplorato il caricamento di file, la pianificazione di attività e l'integrazione con servizi esterni questo approccio garantisce che le tue app mobili rimangano veloci e flessibili mentre sfruttano la potenza di un database ospitato e di un ambiente cloud prossimi passi espandi la tua applicazione xamarin per gestire logiche più complesse, caching o ruoli e permessi avanzati immergiti in funzionalità avanzate , come le notifiche push, o integra dati in tempo reale con le live queries se hai bisogno di aggiornamenti collaborativi visita la documentazione ufficiale di back4app per guide più approfondite su sicurezza, prestazioni e debugging crea soluzioni reali mescolando api di terze parti (gateway di pagamento, analisi, social media) con il tuo backend di back4app questa combinazione può migliorare la funzionalità del tuo client mobile e mantenere il tuo codice organizzato
