Quickstarters
Feature Overview
Wie man ein Backend für Astro erstellt?
21 min
einführung in diesem leitfaden über wie man ein backend für astro erstellt , lernen sie, wie sie ein vollständiges backend mit back4app für ihr astro projekt erstellen wir werden die integration wichtiger back4app funktionen behandeln, einschließlich datenbankverwaltung, cloud funktionen, authentifizierung, dateispeicherung, echtzeitanfragen und mehr – und dabei einen praktischen ansatz zur erstellung schneller anwendungen mit modernen werkzeugen demonstrieren durch die nutzung der umgebung von back4app sparen sie sich viel schwere arbeit, wie das konfigurieren von servern oder das schreiben von sicherheitslagen von grund auf dieses setup spart ihnen zeit und mühe, während sie dennoch einen endpunkt für robuste serverseitige logik definieren können sie werden auch sehen, wie sie umgebungsvariablen in ihr astro projekt einfügen, was es einfacher macht, anmeldeinformationen oder andere sensible daten sicher zu speichern sobald sie fertig sind, haben sie eine skalierbare backend struktur für astro und wissen, wie sie daten mit rest, graphql, benutzerauthentifizierung, echtzeitevents und mehr verwalten sie sind bereit, ihre eigene logik für alle realen bedürfnisse hinzuzufügen, während sie eine starke sicherheitsgrundlage beibehalten voraussetzungen ein back4app konto und ein neues back4app projekt erste schritte mit back4app https //www back4app com/docs/get started/new parse app ein astro projekt einrichten von astro https //docs astro build/en/getting started/ stellen sie sicher, dass sie eine grundlegende astro entwicklungsumgebung und node js installiert haben node js (version 14 oder höher) installiert node js installieren https //nodejs org/en/download/ vertrautheit mit front end und server seiten konzepten sie sollten wissen, wie man astro dateien erstellt oder bearbeitet, mit umgebungsvariablen umgeht und eine einfache post anfrage mit fetch oder einer ähnlichen bibliothek durchführt stellen sie sicher, dass diese voraussetzungen erfüllt sind, bevor sie beginnen ihr back4app konto, eine astro umgebung und grundlegende javascript kenntnisse werden ihnen helfen, diesem tutorial reibungsloser zu folgen schritt 1 – erstellen eines neuen projekts auf back4app und verbinden ein neues projekt erstellen melden sie sich bei ihrem back4app konto an klicken sie auf neue app in ihrem back4app dashboard und geben sie ihr einen namen (z b „astro backend tutorial“) back4app anmeldeinformationen abrufen notieren sie sich in ihrem back4app dashboard unter app einstellungen oder sicherheit & schlüssel , ihre anwendungs id , rest api schlüssel , und die server url ( https //parseapi back4app com standardmäßig) diese umgebungsvariablen werden in ihrer astro integration verwendet astro über apis mit back4app verbinden da wir das parse sdk nicht direkt verwenden, werden wir anfragen mit fetch oder einer anderen bibliothek aus unseren astro dateien stellen speichern sie ihre anmeldeinformationen aus sicherheitsgründen in umgebungsvariablen zum beispiel in einer env datei schritt 2 – datenbank einrichten erstellen eines datenmodells manuell ein datenmodell erstellen gehe zu deinem back4app dashboard und klicke auf datenbank erstelle eine neue klasse (z b „todo“), und füge felder wie title (string) und iscompleted (boolean) hinzu verwende den ki agenten, um ein datenmodell zu erstellen öffne den ki agenten von deinem app dashboard beschreibe dein schema in einfacher sprache (z b „erstelle eine neue todo app mit einer klasse, die die felder title und iscompleted hat “) der agent wird die klasse und die felder für dich generieren daten lesen und schreiben mit der rest api mit ihrem datenmodell bereit, lassen sie uns einen endpunkt innerhalb einer astro komponente oder einer serverseitigen datei definieren, um eine post anfrage und eine leseanfrage zu verarbeiten zum beispiel könnten sie eine datei wie src/pages/api/todos astro \ import type { apiroute } from 'astro'; export const post apiroute = async ({ request }) => { const body = await request json(); // "create" a todo const url = `${import meta env back4app server url}/classes/todo`; const response = await fetch(url, { method 'post', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key, 'content type' 'application/json' }, body json stringify({ title body title, iscompleted body iscompleted }) }); const data = await response json(); return new response(json stringify(data), { status 200 }); }; export const get apiroute = async () => { // "read" all todos const url = `${import meta env back4app server url}/classes/todo`; const response = await fetch(url, { method 'get', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key } }); const data = await response json(); return new response(json stringify(data), { status 200 }); }; \ \<html lang="en"> \<head> \<meta name="viewport" content="width=device width, initial scale=1 0" /> \<link rel="icon" type="image/svg+xml" href="/favicon svg" /> \<meta name="generator" content="astro generator" /> \<title>todos api\</title> \</head> \<body> \<h1>api for todo\</h1> \</body> \</html> dieses beispiel verwendet umgebungsvariablen ( import meta env ) zur speicherung ihrer back4app anmeldeinformationen wir definieren zwei methoden in einer datei export const post zum erstellen eines todos und export const get zum abrufen aller todos sie können es an ihre layout komponentenstruktur und andere seiten anpassen daten lesen und schreiben mit der graphql api ähnlich können sie graphql anfragen von ihren astro seiten aus durchführen \ export async function post({ request }) { const body = await request json(); const url = `${import meta env back4app server url}/graphql`; const query = ` mutation { createtodo(input { fields { title "${body title}" iscompleted ${body iscompleted} } }) { todo { objectid title iscompleted } } } `; const response = await fetch(url, { method 'post', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key, 'content type' 'application/json' }, body json stringify({ query }) }); const data = await response json(); return new response(json stringify(data), { status 200 }); } \ \<html lang="en"> \<head> \<meta name="viewport" content="width=device width, initial scale=1 0" /> \<link rel="icon" type="image/svg+xml" href="/favicon svg" /> \<title>todos graphql\</title> \</head> \<body> \<h1>graphql endpoint for todos\</h1> \</body> \</html> arbeiten mit live abfragen (optional) live abfragen ermöglichen echtzeit updates ihrer daten um sie zu verwenden, aktivieren sie live abfragen im back4app dashboard und konfigurieren sie eine websocket verbindung wenn sie jedoch eine statische astro website erstellen, können sie echtzeit updates über clientseitige skripte integrieren, die auf wss\ //your subdomain b4a io live abfragen können änderungen an ihren verbundenen clients pushen, wann immer datensätze erstellt, aktualisiert oder gelöscht werden schritt 3 – anwendung von sicherheit mit acls und clps acls (access control listen) und clps (klassenebene berechtigungen) sind grundlegend für die kontrolle des datenzugriffs sie können sie im datenbank abschnitt ihres back4app dashboards konfigurieren zum beispiel lese /schreibzugriff nur für authentifizierte benutzer einschränken verwenden sie acls für die sicherheit pro objekt verwenden sie die back4app sicherheitsrichtlinien https //www back4app com/docs/security/parse security um sicherzustellen, dass ihre daten geschützt bleiben sie können diese regeln auch über das dashboard festlegen, sodass selbst wenn ihre rest aufrufe offen sind, nur korrekte anmeldeinformationen die daten ändern oder anzeigen können schritt 4 – schreiben von cloud code funktionen warum cloud code sie können wichtige geschäftslogik auf die serverseite verschieben, um die offenlegung von geheimnissen zu vermeiden oder die notwendigkeit, separate server zu warten cloud code kann auf trigger (beforesave, aftersave) hören oder benutzerdefinierte endpunkte verarbeiten beispiel // main js (cloud code) parse cloud define('greetuser', async (request) => { const username = request params name || 'guest'; return `hello, ${username}! welcome to the astro project `; }); parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw 'todos must have a title '; } }); bereitstellen sie dies über back4app cli https //www back4app com/docs/local development/parse cli oder direkt im cloud code abschnitt ihres back4app dashboards aufruf der funktion von astro aus können sie einen endpunkt definieren, der fetch verwendet, um ihre cloud funktion zu erreichen \ export async function post({ request }) { const body = await request json(); const url = `${import meta env back4app server url}/functions/greetuser`; const response = await fetch(url, { method 'post', headers { 'x parse application id' import meta env back4app app id, 'x parse rest api key' import meta env back4app rest key, 'content type' 'application/json' }, body json stringify({ name body name }) }); const data = await response json(); return new response(json stringify(data), { status 200 }); } \ \<html lang="en"> \<head> \<meta name="viewport" content="width=device width, initial scale=1 0" /> \<link rel="icon" type="image/svg+xml" href="/favicon svg" /> \<title>cloud code greet\</title> \</head> \<body> \<h1>greet function endpoint\</h1> \</body> \</html> schritt 5 – konfiguration der authentifizierung back4app verwendet die user klasse zur verwaltung von benutzerkonten mit rest können sie anmeldungen, logins oder abmeldungen verwalten zum beispiel, einen neuen benutzer registrieren curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest key" \\ h "content type application/json" \\ d '{"username" "user1","password" "secret123","email" "user1\@example com"}' \\ https //parseapi back4app com/users sie können diese logik von astro mit fetch auf ähnliche weise replizieren, indem sie umgebungsvariablen verwenden nach der anmeldung erhält der benutzer ein sitzungstoken für nachfolgende anfragen soziale anmeldung für soziale anbieter (wie google oder apple) verwenden sie spezifische endpunkte oder richten sie den oauth flow konsultieren sie die dokumentation zur anmeldung mit apple https //www back4app com/docs/platform/sign in with apple oder andere anleitungen zur sozialen anmeldung, um eine erweiterte authentifizierung zu integrieren dies ist besonders nützlich, wenn sie möchten, dass sich personen mit minimalem aufwand von ihrem astro projekt aus anmelden schritt 6 – dateispeicherung verwalten um dateien in back4app zu speichern, senden sie sie mit der rest api zum beispiel curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest key" \\ h "content type image/png" \\ \ data binary "@path/to/local/image png" \\ https //parseapi back4app com/files/myimage png die antwort enthält eine datei url sie können diese url mit einem datensatz verknüpfen, wie einem photo klassenobjekt, um sicherzustellen, dass sie verweise auf die datei in ihrer datenbank verfolgen sie können auch steuern, wer hochladen kann, indem sie die dateisicherheitseinstellungen in ihrer app konfiguration anpassen schritt 7 – e mail verifizierung und passwortzurücksetzung e mail verifizierung aktivieren unter app einstellungen im back4app dashboard aktivieren sie die e mail verifizierung und passen sie ihre verifizierungs e mail vorlage an passwortzurücksetzung einrichten ebenso konfigurieren sie ihre e mails zur passwortzurücksetzung und stellen sie sicher, dass die user klasse gültige e mail adressen hat ablauf wenn ein benutzer eine zurücksetzung von ihrem astro projekt anfordert (über einen api aufruf), sendet back4app automatisch eine e mail mit einem sicheren link, um ihr passwort zu ändern schritt 8 – aufgaben mit cloud jobs planen verwenden sie cloud jobs um wiederkehrende wartungs oder andere aufgaben zu planen // main js parse cloud job('cleanupoldtodos', async () => { const query = new parse query('todo'); const now = new date(); const thirty days = 30 24 60 60 1000; query lessthan('createdat', new date(now thirty days)); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); stellen sie ihren code bereit und planen sie dann den job von servereinstellungen > hintergrundjobs in der back4app konsole dies automatisiert aufgaben wie das bereinigen von daten, das senden von e mails oder jede routinefunktion, die sie in bestimmten intervallen ausführen möchten schritt 9 – integration von webhooks webhooks ermöglichen es ihnen, externe dienste zu benachrichtigen, wenn bestimmte ereignisse in ihrer back4app app auftreten zum beispiel können sie daten an slack senden, wann immer ein neues todo erstellt wird gehen sie zu mehr > webhooks in ihrem back4app dashboard fügen sie einen webhook hinzu , der auf die slack url verweist wählen sie das ereignis aus (z b objekt erstellt in der todo klasse) dies ermöglicht einen anfrage /antwortfluss, um ihre externen systeme mit den daten ihrer auf astro basierenden anwendung synchron zu halten schritt 10 – erkundung des back4app admin panels die back4app admin app ist ein benutzerfreundliches verwaltungspanel zur datenbearbeitung es ist besonders nützlich für nicht technische teammitglieder, die direkten zugriff auf ihre datenbank benötigen aktivieren sie die admin app unter mehr > admin app erstellen sie einen admin benutzer für sicheren zugriff verwenden sie dieses panel, um schnell crud operationen durchzuführen, protokolle zu überprüfen oder erweiterte einstellungen zu konfigurieren fazit sie haben erfolgreich ein sicheres und effizientes backend für ein astro projekt mit back4app erstellt während dieses tutorials haben sie definiert und konfiguriert ein datenbankschema verwendet rest und graphql apis, um daten zu lesen und zu schreiben gesichert daten mit acls, clps und benutzerauthentifizierung erweitert die logik durch cloud code und geplante aufgaben verwaltet die dateispeicherung für bilder oder dokumente integriert webhooks für externe benachrichtigungen erforscht das admin panel für vereinfachte datenverwaltung dieser ansatz unterstreicht, wie man ein backend für astro aufbaut, das zuverlässig, skalierbar und einfach zu warten ist durch die nutzung von umgebungsvariablen halten sie ihre anmeldeinformationen sicher, während sie sicherstellen, dass ihr code flexibel für zukünftiges wachstum bleibt nächste schritte stellen sie ihr astro projekt bereit mit hosting plattformen, die serverseitiges rendering oder node basierte umgebungen unterstützen fügen sie erweiterte funktionen hinzu , wie rollenbasierte zugriffskontrolle oder spezialisierte zahlungsintegrationen, unter verwendung von cloud code oder externen apis optimieren sie die leistung durch implementierung von caching strategien und anpassung ihrer viewport inhaltseinstellungen für eine bessere benutzererfahrung überprüfen sie die back4app dokumentation um mehr über protokolle, analysen und fortgeschrittene sicherheitsmaßnahmen zu erfahren setzen sie die erkundung von echtzeitfunktionen mit live abfragen fort und erstellen sie wirklich dynamische, kollaborative anwendungen