Quickstarters
Feature Overview
Wie man ein Backend für Golang erstellt?
35 min
einführung in diesem tutorial lernen sie, wie sie ein vollständiges backend für golang mit back4app erstellen und testen wir werden sie durch die integration wesentlicher back4app funktionen führen – wie datenbankverwaltung, sicherheitseinstellungen, benutzerauthentifizierung, dateispeicherung und cloud code – um ein sicheres, flexibles und skalierbares backend zu erstellen, das gut mit ihrem go http server funktioniert unser fokus wird darauf liegen, die restful apis von back4app zu nutzen, um von unserem golang http client auf die datenbank zuzugreifen, anstatt ein dediziertes parse sdk zu verwenden, damit wir zeigen können, wie man leicht wartbare handler funktionen für ihr neues backend erstellt sie werden sehen, wie dieser ansatz die entwicklungskomplexität im vergleich zur einrichtung eigener server von grund auf verringert indem sie sich auf die echtzeitanfragen, die dateispeicherung und die benutzerauthentifizierungssysteme von back4app verlassen, beschleunigen sie den prozess der backend erstellung am ende werden sie wissen, wie man ein sicheres golang backend erstellt, automatisierte aufgaben plant und externe webhooks integriert sie werden gut vorbereitet sein, um dieses fundament in eine produktionsbereite anwendung zu erweitern oder bei bedarf benutzerdefinierte logik hinzuzufügen voraussetzungen ein back4app konto melden sie sich kostenlos an hier https //www back4app com/ ein neues back4app projekt erste schritte mit back4app https //www back4app com/docs/get started/new parse app go (golang) entwicklungsumgebung stellen sie sicher, dass sie go auf ihrem computer installiert haben anleitungen finden sie in den go offizielle dokumentation https //go dev/ grundkenntnisse des http pakets von go und restful apis vertrautheit mit dem schreiben eines func handlers, dem parsen von fehlermeldungen, dem umgang mit post anfragen und dem einrichten eines http localhost servers wird hilfreich sein stellen sie sicher, dass sie diese voraussetzungen erfüllt haben, bevor sie fortfahren diese einrichtung wird ihr erlebnis erleichtern, während sie entdecken, wie sie ein backend für golang mit back4app erstellen schritt 1 – erstellen eines neuen projekts auf back4app und verbindung herstellen warum ein neues projekt? ein neues back4app projekt zu erstellen, ist ihr erster schritt hier werden sie daten speichern, die dateispeicherung konfigurieren, cloud funktionen planen und hintergrundaufgaben hinzufügen dieses backend projekt wird alle nachfolgenden schritte verankern melden sie sich bei ihrem back4app konto an klicken sie auf „neue app“ in ihrem back4app dashboard benennen sie ihre app (zum beispiel „golang backend tutorial“) sobald die app erstellt ist, wird sie in ihrem dashboard angezeigt diese anwendung ist jetzt ihr auf back4app basierendes backend verbindung über rest apis back4app bietet restful apis zum erstellen, aktualisieren und löschen von daten in golang verwenden wir den http client aus der standardbibliothek von go, um mit diesen endpunkten zu kommunizieren suchen sie ihre anwendungs id und rest api schlüssel , indem sie zum einstellungen oder sicherheit & schlüssel abschnitt ihrer back4app app gehen sie benötigen diese anmeldeinformationen in jedem anforderungsheader wir werden dies in den nächsten schritten veranschaulichen, wenn wir uns mit der datenbank über die methoden post, get und andere http anfragen verbinden schritt 2 – einrichten der datenbank erstellen eines datenmodells um daten in back4app zu speichern, definieren sie klassen (tabellen) und spalten (felder) angenommen, wir möchten eine todo klasse sie können sie manuell im back4app dashboard erstellen gehen sie zum datenbank bereich im dashboard ihrer app erstellen sie eine neue klasse mit dem namen „todo “ fügen sie spalten wie titel (string) und iscompleted (boolean) hinzu sie können das system auch dazu bringen, spalten automatisch zu erstellen, indem sie objekte mit neuen feldern von ihrer golang anwendung senden erstellen eines datenmodells mit dem ki agenten öffnen sie den ki agenten in ihrem app dashboard beschreiben sie ihr gewünschtes datenmodell (z b „bitte erstellen sie eine neue todo klasse mit einem titel feld und einem iscompleted feld “) akzeptieren sie das vorgeschlagene schema dieses praktische feature spart zeit beim entwerfen ihres datenbankschemas daten lesen und schreiben mit der rest api (golang beispiel) unten ist ein einfaches beispiel, wie man daten mit go’s http paket erstellen (methode post) und abrufen (methode get) kann angenommen, sie haben ihre application id und rest api key als umgebungsvariablen package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "log" "net/http" ) type todo struct { objectid string `json "objectid,omitempty"` title string `json "title,omitempty"` iscompleted bool `json "iscompleted,omitempty"` } func main() { // example create todo newtodo = todo{ title "buy groceries", iscompleted false, } created, err = createtodo(newtodo) if err != nil { log println("error creating todo ", err) } else { log println("created todo with id ", created objectid) } // example fetch todos todos, err = fetchalltodos() if err != nil { log println("error fetching todos ", err) } else { for , t = range todos { log println("fetched todo ", t title, t iscompleted) } } } // createtodo sends a post request to save a new record in the "todo" class func createtodo(todo todo) (todo, error) { // convert struct to json body, = json marshal(todo) // create http request req, err = http newrequest("post", "https //parseapi back4app com/classes/todo", bytes newbuffer(body)) if err != nil { return todo{}, err } // set necessary headers req header set("x parse application id", "your application id") req header set("x parse rest api key", "your rest api key") req header set("content type", "application/json") // execute the request client = \&http client{} resp, err = client do(req) if err != nil { return todo{}, err } defer resp body close() if resp statuscode != http statuscreated && resp statuscode != http statusok { bodybytes, = ioutil readall(resp body) return todo{}, fmt errorf("api error %s", string(bodybytes)) } // parse response var createdtodo todo if err = json newdecoder(resp body) decode(\&createdtodo); err != nil { return todo{}, err } return createdtodo, nil } // fetchalltodos retrieves all todo objects from back4app using get func fetchalltodos() (\[]todo, error) { req, err = http newrequest("get", "https //parseapi back4app com/classes/todo", nil) if err != nil { return nil, err } req header set("x parse application id", "your application id") req header set("x parse rest api key", "your rest api key") client = \&http client{} resp, err = client do(req) if err != nil { return nil, err } defer resp body close() if resp statuscode != http statusok { bodybytes, = ioutil readall(resp body) return nil, fmt errorf("api error %s", string(bodybytes)) } // parse response for "results" key var result struct { results \[]todo `json "results"` } if err = json newdecoder(resp body) decode(\&result); err != nil { return nil, err } return result results, nil } in diesen beispielen erstellen wir einen http client, fügen die notwendigen header hinzu und behandeln antwortcodes sowie fehlermeldungen denken sie daran, your application id und your rest api key durch die tatsächlichen schlüssel aus ihrem back4app projekt zu ersetzen daten lesen und schreiben mit der graphql api back4app bietet auch einen graphql endpunkt unter https //parseapi back4app com/graphql sie können eine beliebte go graphql clientbibliothek (wie machine box graphql https //github com/machinebox/graphql ) verwenden, um abfragen oder mutationen durchzuführen dies kann ein strukturierterer ansatz sein als rohe rest aufrufe arbeiten mit live abfragen (optional) wenn sie echtzeit updates in ihrer app sehen möchten, können sie live abfragen im back4app dashboard aktivieren golang hat keine offizielle parse live query bibliothek sie können jedoch ihre eigene websocket verbindung implementieren, um auf live query updates von wss\ //your subdomain b4a io diese funktion ist nützlich für kollaborative apps, die eine sofortige datensynchronisation erfordern schritt 3 – anwendung von sicherheit mit acls und clps überblick back4app bietet zugriffskontrolllisten (acls) und klassenebene berechtigungen (clps), um ihre daten zu schützen acls werden für jedes objekt definiert, während clps übergreifende regeln für eine gesamte klasse definieren klassenebene berechtigungen gehen sie zu ihrer app datenbank ansicht in back4app wählen sie eine klasse (z b todo ) klicken sie auf klassenebene berechtigungen und legen sie lese /schreibzugriff für verschiedene benutzerrollen oder öffentlichen zugriff fest acls sie können eine acl beim erstellen oder aktualisieren eines objekts über rest aufrufe übergeben dies stellt sicher, dass nur bestimmte benutzer oder rollen die daten lesen/schreiben können für weitere details besuchen sie app sicherheitsrichtlinien https //www back4app com/docs/security/parse security schritt 4 – schreiben von cloud code funktionen warum cloud code cloud code ermöglicht es ihnen, serverseitige funktionen, trigger oder validierungen auszuführen – ohne ihre eigenen server verwalten zu müssen sie können erweiterte geschäftslogik hinzufügen oder externe apis von der serverseite integrieren beispiel für eine cloud funktion ein einfaches beispiel ist eine funktion, die die textlänge berechnet in ihrer main js datei im back4app dashboard parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); bereitstellung cloud code bereitstellen, indem sie entweder back4app cli back4app dashboard unter cloud code > funktionen fügen sie ihren code im main js editor ein und klicken sie auf bereitstellen cloud funktionen aus golang aufrufen sie können eine cloud funktion über rest von ihrem http client aufrufen func callcalculatetextlength(txt string) (int, error) { body, = json marshal(map\[string]string{"text" txt}) req, err = http newrequest("post", "https //parseapi back4app com/functions/calculatetextlength", bytes newbuffer(body)) if err != nil { return 0, err } // headers req header set("x parse application id", "your application id") req header set("x parse rest api key", "your rest api key") req header set("content type", "application/json") client = \&http client{} resp, err = client do(req) if err != nil { return 0, err } defer resp body close() if resp statuscode != http statusok { bodybytes, = ioutil readall(resp body) return 0, fmt errorf("api error %s", string(bodybytes)) } var result struct { result map\[string]int `json "result"` } if err = json newdecoder(resp body) decode(\&result); err != nil { return 0, err } return result result\["length"], nil } schritt 5 – authentifizierung konfigurieren benutzerauthentifizierung aktivieren back4app verwendet eine user klasse zur authentifizierung wenn sie einen neuen benutzer über rest erstellen, speichert das backend die anmeldeinformationen sicher und generiert ein sitzungstoken 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 '{"username" "alice", "password" "secret123", "email" "alice\@example com"}' \\ https //parseapi back4app com/users verwenden sie das zurückgegebene sitzungstoken für nachfolgende anfragen, die benutzerprivilegien erfordern in go würden sie denselben typ von http anfrage von einem http client senden, wie zuvor demonstriert soziale anmeldung für soziale anmeldungen wie google oder facebook müssen sie die oauth einstellungen auf back4app konfigurieren diese abläufe beinhalten oft den austausch von tokens konsultieren sie die dokumentation zur anmeldung mit apple / soziale anmeldung https //www back4app com/docs/platform/sign in with apple für weitere details schritt 6 – dateispeicherung verwalten einrichtung und hochladen sie können dateien auf back4app speichern, indem sie sie als base64 kodierte daten oder multipart/form data senden 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 '{ "file" { "name" "myimage png", " type" "file", "base64" "ivborw0kggoaaaansuheugaa " } }' \\ https //parseapi back4app com/files/myimage png nach dem hochladen können sie die datei an ein objekt anhängen, indem sie die zurückgegebene datei url oder den datei pointer speichern in go erstellen sie eine http anfrage auf die gleiche weise – stellen sie nur sicher, dass sie den dateinhalt korrekt kodieren schritt 7 – e mail verifizierung und passwortzurücksetzung bedeutung die e mail verifizierung stellt sicher, dass benutzer die angegebene e mail kontrollieren, während die passwortzurücksetzung ihnen hilft, konten wiederherzustellen beide funktionen erhöhen die sicherheit und das vertrauen aktivierung der e mail verifizierung gehen sie zu ihrem back4app dashboard aktivieren sie unter e mail einstellungen , die verifizierungs e mails passen sie ihre e mail vorlagen bei bedarf an wenn sich ein benutzer anmeldet, wird automatisch eine bestätigungs e mail an ihn gesendet passwortzurücksetzung verwenden sie den requestpasswordreset rest endpunkt https //docs parseplatform org/rest/guide/#r passwordreset um eine passwortzurücksetzung einzuleiten 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 '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset schritt 8 – aufgaben mit cloud jobs planen was cloud jobs tun cloud jobs laufen nach einem zeitplan, um aufgaben wie das bereinigen veralteter daten oder das versenden wöchentlicher newsletter zu automatisieren parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); // remove records older than 30 days // }); stellen sie diesen job bereit und planen sie ihn in ihrem back4app dashboard > app einstellungen > servereinstellungen > hintergrundjobs schritt 9 – webhooks integrieren warum webhooks webhooks ermöglichen es ihnen, externe dienste zu benachrichtigen, wenn bestimmte ereignisse eintreten zum beispiel könnten sie slack benachrichtigungen senden, wenn neue todo elemente erstellt werden gehen sie zum abschnitt webhooks in ihrem back4app dashboard konfigurieren sie ihren endpunkt (wie https //your external service com/webhook ) weisen sie trigger zu (z b aftersave auf todo ) sie können auch externe apis aus cloud code auslösen, indem sie eine http client anfrage schreiben, wenn sie eine direkte kontrolle über ereignisse bevorzugen schritt 10 – erforschen des back4app admin panels übersicht die back4app admin app ist eine point and click oberfläche, die sie mit nicht technischen teammitgliedern teilen können, um daten zu verwalten aktivieren sie die admin app gehen sie zu mehr > admin app in ihrem back4app dashboard aktivieren sie es und erstellen sie einen admin benutzer verwenden sie ihre gewählte subdomain, um sich in eine einfache benutzeroberfläche zur datenmanipulation einzuloggen dies befreit sie davon, direkte abfragen oder benutzerdefinierten code zu schreiben, um grundlegende operationen durchzuführen fazit in diesem leitfaden haben sie erfahren, wie sie ein backend für golang mit back4app erstellen sie haben erkundet, wie sie sich über restful apis mit der datenbank verbinden, sicherheitsmaßnahmen mit acls und clps anwenden, geplante aufgaben mit cloud jobs ausführen, sich mit externen diensten über webhooks integrieren und die benutzerauthentifizierung sowie die dateispeicherung einrichten mit dem http paket von go und den robusten funktionen von back4app können sie ein leistungsstarkes backend erstellen, das zeit spart und mühelos skaliert jetzt, da sie die grundlagen beherrschen, können sie die logik ihrer golang handlerfunktion erweitern, sich mit neuen api endpunkten verbinden und eine reichhaltige anwendung erstellen, die ihren bedürfnissen entspricht nächste schritte verfeinern sie ihre golang app fügen sie erweiterte funktionen wie rollenbasierten zugriff hinzu oder optimieren sie ihren http server für die produktion erfahren sie mehr über echtzeitanfragen integrieren sie live queries für kollaborative apps erforschen sie die erweiterten back4app dokumentationen optimieren sie ihre acls, protokolle und analysen integrieren sie drittanbieter apis verwenden sie cloud code oder direkte webhooks, um die funktionalität ihres backends zu erweitern