Quickstarters
Feature Overview
Come creare un backend per Dart?
25 min
introduzione in questo tutorial, imparerai come costruire un backend per dart utilizzando back4app ci concentreremo sull'integrazione delle funzionalità essenziali di back4app—come la gestione del database, le funzioni cloud code, le api rest e graphql, l'autenticazione degli utenti e le query in tempo reale (live queries)—in un progetto basato su dart poiché dart è un linguaggio di programmazione versatile, puoi usarlo per vari progetti backend, da semplici server web a applicazioni su larga scala sfruttando l'ambiente intuitivo di back4app, potrai configurare rapidamente un robusto e sicuro framework backend senza una pesante manutenzione del server vedrai come funzionalità come acl, clp, pianificazione di attività in background e creazione di logica personalizzata con cloud code semplificano le operazioni lato server dopo aver completato questo tutorial, sarai pronto a scalare il tuo backend dart o ad aggiungere integrazioni più avanzate prerequisiti per completare questo tutorial, avrai bisogno di un account back4app e un nuovo progetto back4app iniziare con back4app https //www back4app com/docs/get started/new parse app se non hai un account, puoi crearne uno gratuitamente ambiente di sviluppo dart di base puoi configurarlo installando il dart sdk e qualsiasi editor di tua scelta per ulteriori informazioni, vedere ottieni il dart sdk https //dart dev/get dart dart 2 0 o superiore assicurati che il tuo ambiente sia aggiornato, in modo da poter sfruttare le recenti funzionalità di dart e le librerie server side come shelf familiarità con dart e concetti di backend se sei nuovo in dart, rivedi la documentazione ufficiale di dart https //dart dev/guides per costruire una base di conoscenza assicurati di avere tutti questi prerequisiti in atto prima di iniziare avere il tuo progetto back4app pronto e il tuo ambiente dart locale correttamente configurato ti aiuterà a seguire più facilmente passo 1 – creare un nuovo progetto su back4app e connettersi perché creare un nuovo progetto back4app? un nuovo progetto back4app forma la base del tuo backend, gestendo il tuo database, la sicurezza, le api, l'archiviazione dei file e altro ancora ti offre una struttura organizzata per costruire la tua logica server side basata su dart creare un progetto back4app accedi al tuo account back4app clicca su “nuova app” nel dashboard di back4app dai al tuo app un nome descrittivo (ad esempio, “dart backend tutorial”) una volta creato, il tuo progetto apparirà nel dashboard di back4app questo progetto è dove configurerai tutte le impostazioni del backend per la tua applicazione dart installa il parse sdk e connetti sebbene dart non abbia un parse sdk ufficiale, ci sono librerie mantenute dalla comunità come parse server sdk che abilitano l'integrazione con back4app puoi aggiungerlo includendo la seguente dipendenza nel file pubspec yaml dependencies parse server sdk ^4 0 0 # example version esegui poi dart pub get inizializza parse nel tuo codice dart (ad esempio, in un main dart file) import 'package\ parse server sdk/parse server sdk dart'; future\<void> main() async { const keyapplicationid = 'your application id'; const keyclientkey = 'your javascript key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); // your dart server logic goes here print('parse initialized with back4app!'); } recupera il tuo application id , javascript key , e parse server url dal dashboard di back4app (sotto “impostazioni app” > “sicurezza e chiavi”) con questo passaggio, la tua applicazione dart può interagire in modo sicuro con il tuo framework backend di back4app passo 2 – configurazione del database creazione di un modello dati nel dashboard di back4app, vai alla sezione “database” e crea una nuova classe (ad esempio, “todo”) aggiungi colonne per i tuoi campi, come title (string) e iscompleted (boolean) creazione di un modello dati utilizzando l'agente ai apri l'agente ai nel tuo dashboard app descrivi il tuo schema desiderato (ad esempio, “per favore crea una classe todo con i campi title e iscompleted ”) lascia che l'agente ai finalizzi lo schema per te lettura e scrittura di dati utilizzando sdk con la libreria parse server sdk, puoi salvare e interrogare dati dal tuo codice dart ad esempio import 'package\ parse server sdk/parse server sdk dart'; future\<parseobject?> createtodoitem(string title, bool iscompleted) async { final todo = parseobject('todo') set('title', title) set('iscompleted', iscompleted); final response = await todo save(); if (response success && response result != null) { print('todo created ${response result}'); return response result as parseobject; } else { print('error creating todo ${response error? message}'); return null; } } future\<list\<parseobject>?> fetchtodos() async { final query = querybuilder\<parseobject>(parseobject('todo')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { print('error fetching todos ${response error? message}'); return null; } } lettura e scrittura di dati utilizzando 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 lettura e scrittura di dati utilizzando graphql api mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } lavorare con le query live (opzionale) per abilitare aggiornamenti in tempo reale, attiva le query live nel tuo dashboard di back4app (impostazioni del server) puoi quindi iscriverti da dart, anche se potresti aver bisogno di una libreria specializzata la libreria parse server sdk potrebbe avere supporto parziale per le query live; controlla la sua documentazione per dettagli passo 3 – applicare sicurezza con acl e clp panoramica acl (liste di controllo degli accessi) limita la lettura/scrittura a livello di oggetto clp (permessi a livello di classe) limita la lettura/scrittura a livello di classe passo dopo passo permessi a livello di classe nella dashboard di back4app, apri la sezione database, scegli una classe e configura i clp sotto “sicurezza ” acl nel codice (utilizzando il parse server sdk) future\<parseobject?> createprivatetodo(string title, parseuser owneruser) async { final todo = parseobject('todo') set('title', title); final acl = \<string, dynamic>{}; // grant read/write to the owner acl\[owneruser objectid!] = {"read" true, "write" true}; // disable public read/write acl\[' '] = {"read" false, "write" false}; todo setacl(acl); final response = await todo save(); if (response success && response result != null) { return response result as parseobject; } else { print('error setting acl ${response error? message}'); return null; } } passo 4 – scrivere funzioni di cloud code perché cloud code il cloud code è essenziale per creare logica aziendale personalizzata sul lato server ti evita di gestire la tua infrastruttura e mantiene il tuo codice sicuro e scalabile esempio di funzione e trigger nel tuo main js (per cloud code) // main js parse cloud define('hellodart', (request) => { return `hello from dart and back4app, ${request params name || 'guest'}!`; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'each todo needs a title!'; } }); distribuzione utilizzando il back4app cli utilizzando il dashboard vai a cloud code > funzioni incolla il tuo codice in main js clicca distribuisci npm e cloud code se hai bisogno di moduli npm aggiuntivi per il tuo cloud code, specificali nel package json questo ti consente di integrare api esterne o operazioni avanzate direttamente dal tuo codice lato server passo 5 – configurazione dell'autenticazione abilita l'autenticazione utente nel dashboard di back4app, puoi abilitare la verifica dell'email o impostare accessi social per impostazione predefinita, la classe parse user memorizza le password in modo sicuro esempi di codice (utilizzando parse server sdk in dart) import 'package\ parse server sdk/parse server sdk dart'; future\<void> signupuser(string username, string password, string email) async { final user = parseuser(username, password, email); final response = await user signup(); if (response success) { print('user signed up ${response result}'); } else { print('error ${response error? message}'); } } future\<void> loginuser(string username, string password) async { final user = parseuser(username, password, null); final response = await user login(); if (response success) { print('user logged in ${response result}'); } else { print('error ${response error? message}'); } } accesso sociale configura fornitori come google, apple o facebook all'interno del pannello di controllo di back4app implementa il corrispondente plugin parse server sdk o un flusso oauth personalizzato se disponibile passo 6 – gestione dello storage dei file impostazione dello storage dei file back4app ospita automaticamente i file che carichi tramite le api parse puoi memorizzare immagini, documenti o qualsiasi tipo di file esempio (dart) considerazioni sulla sicurezza puoi controllare chi può caricare o recuperare file regolando i tuoi clp o i ruoli utente nel pannello di controllo di back4app passaggio 7 – verifica email e ripristino password panoramica la verifica dell'email conferma che gli utenti possiedono le email con cui si registrano, mentre i link per il ripristino della password forniscono un modo sicuro per gestire le credenziali smarrite configurazione del dashboard di back4app vai a impostazioni app > email abilita verifica email utente e ripristino password personalizza i tuoi modelli di email secondo necessità implementazione quando gli utenti si registrano utilizzando un'email valida, ricevono un link di verifica dell'email per il ripristino della password, chiama il metodo requestpasswordreset di parseuser (se disponibile in parse server sdk) o l'endpoint rest passaggio 8 – pianificazione dei compiti con cloud jobs cosa fanno i cloud jobs i cloud jobs ti permettono di pianificare compiti a intervalli prestabiliti, come la pulizia di vecchi record o l'invio di report periodici operano in background, indipendentemente dalle azioni attivate dagli utenti esempio in main js , aggiungi 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); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); pianificazione vai a impostazioni app > impostazioni server > lavori in background pianifica cleanupoldtodos per essere eseguito quotidianamente o a un intervallo a tua scelta passo 9 – integrazione dei webhook definizione i webhook consentono alla tua app back4app di effettuare richieste http a un servizio esterno in determinati eventi questo è utile per l'integrazione con servizi di terze parti come slack o stripe configurazione vai a altro > webhooks nel tuo dashboard di back4app clicca su aggiungi webhook e fornisci un endpoint (ad es , https //your external service com/webhook endpoint ) specifica l'evento di attivazione (ad es , dopo che un todo è stato creato) esempio se hai un url webhook di slack, puoi configurarlo per ricevere una notifica ogni volta che viene inserito un nuovo todo questa connessione fluida tra il tuo backend dart e strumenti esterni aumenta l'automazione passo 10 – esplorare il pannello di amministrazione di back4app dove trovarlo nella tua console back4app, apri altro > app di amministrazione e abilita il pannello caratteristiche gestisci facilmente i record del database esamina i log, i lavori in background e le analisi controlla l'accesso e i ruoli degli utenti conclusione seguendo questi passaggi, hai costruito un backend sicuro per dart su back4app gestito il tuo database attraverso classi e campi parse creato codice cloud personalizzato per gestire la logica lato server protetto i dati utilizzando acl, clp e autenticazione degli utenti pianificato attività in background con cloud jobs integrato servizi esterni utilizzando webhook esplorato il pannello di amministrazione per una facile gestione dei dati questa solida base ti prepara a distribuire progetti dart in modo efficiente, sia che tu stia costruendo server web su larga scala, microservizi o applicazioni specializzate da qui, puoi scalare il tuo framework backend, aggiungere logica più complessa o integrare funzionalità avanzate come notifiche push o analisi avanzate prossimi passi esplora la prontezza per la produzione utilizza strategie di caching, gestisci la concorrenza e ottimizza le prestazioni per un alto traffico integra funzionalità avanzate come il controllo degli accessi basato sui ruoli, più accessi sociali o strumenti di collaborazione in tempo reale controlla la documentazione ufficiale di back4app per approfondimenti su log, sicurezza e ottimizzazione delle prestazioni sperimenta con pacchetti aggiuntivi come il pacchetto shelf per creare server web personalizzati insieme al tuo layer di dati basato su parse, sfruttando le capacità di dart come linguaggio di programmazione flessibile con questa conoscenza di come costruire un backend per dart , hai un modo potente per gestire i dati, proteggere i tuoi processi lato server e automatizzare i flussi di lavoro della tua app, il tutto senza la necessità di un significativo sovraccarico infrastrutturale
