Quickstarters
Feature Overview
Wie man ein Backend für Dart erstellt?
25 min
einführung in diesem tutorial lernen sie wie man ein backend für dart mit back4app erstellt wir konzentrieren uns darauf, wesentliche back4app funktionen—wie datenbankverwaltung, cloud code funktionen, rest und graphql apis, benutzerauthentifizierung und echtzeitanfragen (live queries)—in ein auf dart basierendes projekt zu integrieren da dart eine vielseitige programmiersprache ist, können sie sie für verschiedene backend projekte verwenden, von einfachen webservern bis hin zu umfassenden anwendungen durch die nutzung der intuitiven umgebung von back4app können sie schnell ein robustes und sicheres backend framework einrichten, ohne umfangreiche serverwartung sie werden sehen, wie funktionen wie acls, clps, das planen von hintergrundaufgaben und das erstellen benutzerdefinierter logik mit cloud code ihre serverseitigen operationen optimieren nach abschluss dieses tutorials sind sie bereit, ihr dart backend zu skalieren oder fortgeschrittenere integrationen hinzuzufügen voraussetzungen um dieses tutorial abzuschließen, benötigen sie ein back4app konto und ein neues back4app projekt erste schritte mit back4app https //www back4app com/docs/get started/new parse app wenn sie kein konto haben, können sie eines kostenlos erstellen grundlegende dart entwicklungsumgebung sie können dies einrichten, indem sie das dart sdk und einen editor ihrer wahl installieren für weitere informationen siehe dart sdk herunterladen https //dart dev/get dart dart 2 0 oder höher stellen sie sicher, dass ihre umgebung auf dem neuesten stand ist, damit sie von den neuesten dart funktionen und bibliotheken auf der serverseite profitieren können vertrautheit mit dart und backend konzepten wenn sie neu in dart sind, überprüfen sie die offizielle dart dokumentation https //dart dev/guides um grundlegende sprachkenntnisse zu erwerben stellen sie sicher, dass sie alle diese voraussetzungen erfüllt haben, bevor sie beginnen wenn ihr back4app projekt bereit und ihre lokale dart umgebung richtig konfiguriert ist, wird es ihnen leichter fallen, den anweisungen zu folgen schritt 1 – erstellen eines neuen projekts auf back4app und verbindung herstellen warum ein neues back4app projekt erstellen? ein neues back4app projekt bildet die grundlage ihres backends, verwaltet ihre datenbank, sicherheit, apis, dateispeicher und mehr es gibt ihnen eine organisierte struktur, um ihre serverseitige logik auf dart basis zu entwickeln erstellen eines back4app projekts melden sie sich bei ihrem back4app konto an klicken sie auf „neue app“ im back4app dashboard geben sie ihrer app einen beschreibenden namen (z b „dart backend tutorial“) sobald ihr projekt erstellt ist, wird es im back4app dashboard angezeigt dieses projekt ist der ort, an dem sie alle backend einstellungen für ihre dart anwendung konfigurieren installieren sie das parse sdk und verbinden sie es während dart kein offizielles parse sdk hat, gibt es von der community gepflegte bibliotheken wie parse server sdk die die integration mit back4app ermöglichen sie können es hinzufügen, indem sie die folgende abhängigkeit in die pubspec yaml ihrer dart projekts einfügen dependencies parse server sdk ^4 0 0 # example version führen sie dann aus dart pub get initialisieren sie parse in ihrem dart code (z b in einer main dart datei) 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!'); } holen sie sich ihre anwendungs id , javascript schlüssel , und parse server url vom back4app dashboard (unter „app einstellungen“ > „sicherheit & schlüssel“) mit diesem schritt kann ihre dart anwendung sicher mit ihrem back4app backend framework interagieren schritt 2 – datenbank einrichten erstellen eines datenmodells navigieren sie im back4app dashboard zum abschnitt „datenbank“ und erstellen sie eine neue klasse (z b „todo“) fügen sie spalten für ihre felder hinzu, wie title (string) und iscompleted (boolean) erstellen eines datenmodells mit dem ki agenten öffnen sie den ki agenten in ihrem app dashboard beschreiben sie ihr gewünschtes schema (z b „bitte erstellen sie eine todo klasse mit den feldern title und iscompleted “) lassen sie den ki agenten das schema für sie abschließen daten lesen und schreiben mit sdk mit der parse server sdk bibliothek können sie daten aus ihrem dart code speichern und abfragen zum beispiel 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; } } daten lesen und schreiben mit 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 daten lesen und schreiben mit graphql api mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } arbeiten mit live abfragen (optional) um echtzeit updates zu aktivieren, aktivieren sie live abfragen in ihrem back4app dashboard (servereinstellungen) sie können dann von dart abonnieren, obwohl sie möglicherweise eine spezialisierte bibliothek benötigen die parse server sdk bibliothek könnte teilweise unterstützung für live abfragen bieten; überprüfen sie die dokumentation für details schritt 3 – anwendung von sicherheit mit acls und clps übersicht acls (zugriffssteuerungslisten) lesen/schreiben auf objektebene einschränken clps (klassenebene berechtigungen) lesen/schreiben auf klassenebene einschränken schritt für schritt klassenebene berechtigungen im back4app dashboard den datenbankbereich öffnen, eine klasse auswählen und clps unter „sicherheit“ konfigurieren acls im code (unter verwendung des 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; } } schritt 4 – schreiben von cloud code funktionen warum cloud code cloud code ist entscheidend für die erstellung benutzerdefinierter geschäftslogik auf der serverseite es erspart ihnen die verwaltung ihrer eigenen infrastruktur und hält ihren code sicher und skalierbar beispiel funktion und trigger in ihrer main js (für 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!'; } }); bereitstellung verwendung der back4app cli verwendung des dashboards gehe zu cloud code > funktionen füge deinen code in main js ein klicke auf bereitstellen npm und cloud code wenn du zusätzliche npm module für deinen cloud code benötigst, gib sie in der package json deines projekts an dies ermöglicht es dir, externe apis oder erweiterte operationen direkt aus deinem serverseitigen code zu integrieren schritt 5 – authentifizierung konfigurieren benutzerauthentifizierung aktivieren im back4app dashboard kannst du die e mail verifizierung aktivieren oder soziale logins einrichten standardmäßig speichert die parse user klasse passwörter sicher codebeispiele (unter verwendung von 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}'); } } sozialer login konfigurieren sie anbieter wie google, apple oder facebook im back4app dashboard implementieren sie das entsprechende parse server sdk plugin oder einen benutzerdefinierten oauth flow, falls verfügbar schritt 6 – umgang mit dateispeicher einrichten des dateispeichers back4app hostet automatisch dateien, die sie über die parse apis hochladen sie können bilder, dokumente oder beliebige dateitypen speichern beispiel (dart) sicherheitsüberlegungen sie können steuern, wer dateien hochladen oder abrufen kann, indem sie ihre clps oder benutzerrollen im back4app dashboard anpassen schritt 7 – e mail verifizierung und passwortzurücksetzung übersicht die e mail verifizierung bestätigt, dass die benutzer die e mails besitzen, mit denen sie sich registrieren, während links zur passwortzurücksetzung eine sichere möglichkeit bieten, verlorene anmeldeinformationen zu verwalten back4app dashboard konfiguration gehe zu app einstellungen > e mail aktiviere benutzer e mail verifizieren und passwort zurücksetzen passe deine e mail vorlagen nach bedarf an implementierung wenn benutzer sich mit einer gültigen e mail anmelden, erhalten sie einen link zur e mail verifizierung für passwortzurücksetzungen rufe die methode requestpasswordreset von parseuser auf (sofern verfügbar im parse server sdk) oder den rest endpunkt schritt 8 – aufgaben mit cloud jobs planen was cloud jobs tun cloud jobs ermöglichen es dir, aufgaben in festgelegten intervallen zu planen, wie das bereinigen alter datensätze oder das versenden regelmäßiger berichte sie arbeiten im hintergrund, unabhängig von benutzerinitiierte aktionen beispiel in main js , füge hinzu 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); } }); planung gehe zu app einstellungen > servereinstellungen > hintergrundjobs plane cleanupoldtodos täglich oder in einem von dir gewählten intervall auszuführen schritt 9 – integration von webhooks definition webhooks ermöglichen es deiner back4app app, http anfragen an einen externen dienst bei bestimmten ereignissen zu senden dies ist hilfreich für die integration mit drittanbieterdiensten wie slack oder stripe konfiguration gehe zu mehr > webhooks in deinem back4app dashboard klicke auf webhook hinzufügen und gib einen endpunkt an (z b https //your external service com/webhook endpoint ) gib das auslösende ereignis an (z b nachdem ein todo erstellt wurde) beispiel wenn sie eine slack webhook url haben, können sie sie so konfigurieren, dass sie eine benachrichtigung erhalten, wann immer ein neues todo eingefügt wird diese nahtlose verbindung zwischen ihrem dart backend und externen tools steigert die automatisierung schritt 10 – erkundung des back4app admin panels wo man es findet öffnen sie in ihrer back4app konsole mehr > admin app und aktivieren sie das panel funktionen verwalten sie datenbankeinträge einfach überprüfen sie protokolle, hintergrundjobs und analysen steuern sie den benutzerzugang und die rollen fazit indem sie diese schritte befolgt haben, haben sie einen sicheren backend für dart auf back4app erstellt ihre datenbank verwaltet über parse klassen und felder benutzerdefinierten cloud code erstellt um serverseitige logik zu handhaben daten gesichert mit acls, clps und benutzerauthentifizierung hintergrundaufgaben geplant mit cloud jobs externe dienste integriert mit webhooks das admin panel erkundet für eine einfache datenverwaltung dieses solide fundament bereitet sie darauf vor, dart projekte effizient bereitzustellen, egal ob sie vollwertige webserver, mikrodienste oder spezialisierte anwendungen erstellen von hier aus können sie ihr backend framework skalieren, komplexere logik hinzufügen oder fortschrittliche funktionen wie push benachrichtigungen oder erweiterte analysen integrieren nächste schritte erforschen sie die produktionsbereitschaft verwenden sie caching strategien, verwalten sie die parallelität und optimieren sie die leistung für hohen verkehr integrieren sie fortschrittliche funktionen wie rollenbasierte zugriffskontrolle, mehr soziale logins oder echtzeit zusammenarbeitstools schauen sie sich die offiziellen back4app dokumente an für tiefere einblicke in protokolle, sicherheit und leistungsoptimierung experimentieren sie mit zusätzlichen paketen wie dem paket shelf, um benutzerdefinierte webserver neben ihrer auf parse basierenden datenschicht zu erstellen und die fähigkeiten von dart als flexible programmiersprache zu nutzen mit diesem wissen darüber, wie man ein backend für dart erstellt , haben sie eine leistungsstarke möglichkeit, daten zu verwalten, ihre serverseitigen prozesse abzusichern und die workflows ihrer app zu automatisieren – alles ohne signifikante infrastrukturkosten