Wie man ein Backend für Elixir erstellt?
In diesem Tutorial lernen Sie wie man ein Backend für Elixir mit Back4App erstellt.
Wir werden die Integration wesentlicher Back4App-Funktionen durchgehen – wie Datenbankverwaltung, Cloud-Code-Funktionen, REST- und GraphQL-APIs, Benutzerauthentifizierung und Echtzeitanfragen (Live Queries) – um ein sicheres, skalierbares und robustes Backend zu erstellen.
Elixir, das auf der Erlang-VM (BEAM) läuft und OTP (Erlang OTP) nutzt, ist bekannt für seine fehlertolerante, nebenläufige Umgebung, die gut mit Back4App harmoniert, um eine moderne, leistungsstarke Infrastruktur zu bilden.
Sie werden sehen, wie die schnelle Einrichtung und die intuitive Umgebung von Back4App Ihre Zeit und Mühe im Vergleich zur manuellen Konfiguration von Servern und Datenbanken drastisch reduzieren können.
Dies umfasst die Nutzung von Pattern Matching sowie die Anbindung an das bevorzugte Web-Framework von Elixir.
Am Ende dieses Tutorials haben Sie eine solide Grundlage, die Sie in eine produktionsbereite Anwendung erweitern oder mit benutzerdefinierter Logik und Drittanbieter-APIs verbessern können.
Um dieses Tutorial abzuschließen, benötigen Sie:
- Ein Back4App-Konto und ein neues Back4App-Projekt Erste Schritte mit Back4app. Wenn Sie kein Konto haben, können Sie eines kostenlos erstellen. Befolgen Sie die obige Anleitung, um Ihr Projekt vorzubereiten.
- Grundlegende Elixir-Entwicklungsumgebung Stellen Sie sicher, dass Elixir auf Ihrem Computer installiert ist. Wenn Sie ein Web-Framework wie Phoenix verwenden möchten, siehe die Phoenix-Installationsanleitung zur Referenz.
- Vertrautheit mit Elixir-Konzepten Offizielle Elixir-Dokumentation. Wenn Sie neu in Elixir sind, überprüfen Sie diese Ressourcen oder ein Tutorial für Anfänger, bevor Sie beginnen.
Stellen Sie sicher, dass Sie alle diese Voraussetzungen erfüllt haben, bevor Sie beginnen. Ihr Back4App-Projekt eingerichtet und Ihre lokale Elixir-Umgebung bereit zu haben, wird Ihnen helfen, reibungsloser zu folgen.
Der erste Schritt in wie man ein Backend für Elixir auf Back4App erstellt, besteht darin, ein neues Projekt zu erstellen. Wenn Sie noch keines erstellt haben, befolgen Sie diese Schritte:
- Melden Sie sich bei Ihrem Back4app-Konto an.
- Klicken Sie auf die Schaltfläche „Neue App“ in Ihrem Back4App-Dashboard.
- Geben Sie Ihrer App einen Namen (z. B. „Elixir-Backend-Tutorial“).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
Sobald das Projekt erstellt ist, sehen Sie es in Ihrem Back4App-Dashboard aufgelistet. Dieses Projekt wird die Grundlage für alle Backend-Konfigurationen sein, die in diesem Tutorial besprochen werden.
Back4App verwendet die Parse-Plattform als Grundlage. Für Elixir gibt es derzeit kein offizielles Parse SDK. Stattdessen können Sie sich einfach über die REST- oder GraphQL-APIs mit Back4App verbinden. In Ihrem Elixir-Projekt werden Sie:
- Ihre Anwendungs-ID und REST- oder GraphQL-Schlüssel aus den „App-Einstellungen“ oder dem Abschnitt „Sicherheit & Schlüssel“ im Back4App-Dashboard abrufen.
Zum Beispiel, um Anmeldeinformationen in einer Konfigurationsdatei zu speichern (config/dev.exs oder ähnlich):
Sie können diese Anmeldeinformationen dann in Ihrem Code verwenden, um REST-Anfragen zu stellen. In diesem Leitfaden zeigen wir, wie man mit der Back4App-Datenbank, dem Benutzersystem und anderen Funktionen über standardmäßige HTTP- oder GraphQL-Anfragen interagiert.
In Back4App werden Daten in Klassen. Sie können eine neue Klasse im Back4App-Dashboard erstellen:
- Navigieren Sie zum Abschnitt “Datenbank” in Ihrem Back4App-Dashboard.
- Erstellen Sie eine neue Klasse (z. B. “Todo”) und fügen Sie relevante Spalten hinzu, wie Titel (String) und isCompleted (Boolean).
![Neue Klasse erstellen Neue Klasse erstellen](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4App bietet auch einen KI-Agenten, der Ihnen hilft, Ihr Datenmodell zu beschreiben und zu erstellen:
- Öffnen Sie den KI-Agenten von Ihrem App-Dashboard oder dem Menü.
- Beschreiben Sie Ihr Datenmodell in einfacher Sprache (z. B. “Bitte erstellen Sie eine neue Todo-App mit einem vollständigen Klassenschema.”).
- Lassen Sie den KI-Agenten das Schema automatisch erstellen.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Da Elixir kein offizielles Parse SDK hat, überspringen wir die direkte SDK-Nutzung. Stattdessen zeigen wir REST, GraphQL, und Live Queries Ansätze unten.
Installieren Sie einen HTTP-Client wie HTTPoison in Ihrer mix.exs:
Führen Sie dann mix deps.get aus.
Um ein Todo-Objekt aus Ihrer Elixir-Anwendung zu erstellen (zu speichern):
Und um Ihre Todo-Objekte abzufragen:
Sie können auch über GraphQL interagieren. Zum Beispiel, um ein Todo zu erstellen:
In Elixir könnten Sie dies auch mit einem HTTP-Client senden:
Für Echtzeit-Updates bietet Back4App Live-Abfragen. Sie können Live-Abfragen in den Servereinstellungen Ihrer App aktivieren. Da es derzeit keine native Elixir Parse-Client-Bibliothek gibt, würden Sie typischerweise über einen Phoenix-Kanal oder einen benutzerdefinierten WebSocket-Client mit dem bereitgestellten wss://YOUR_SUBDOMAIN_HERE.b4a.io Endpunkt verbinden. Dies kann fortgeschrittener sein und erfordert benutzerdefiniertes Codieren, um Abonnements, Nachrichten usw. zu verwalten.
Back4App bietet Zugriffskontrolllisten (ACLs) und Klassenebene-Berechtigungen (CLPs) an, um den Datenzugriff zu schützen und zu verwalten. ACLs gelten für einzelne Objekte, während CLPs für die gesamte Klasse gelten.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Klassenebene Berechtigungen (CLPs): In Ihrem Back4App Dashboard, unter Datenbank, wählen Sie eine Klasse (z.B. „Todo“) und öffnen Sie die Klassenebene Berechtigungen Registerkarte. Passen Sie die Einstellungen an (z.B. „Erfordert Authentifizierung“ oder „Kein Zugriff“ für die Öffentlichkeit).
- ACLs konfigurieren: Beim Erstellen oder Aktualisieren eines Objekts können Sie ACL-Daten in Ihrer REST- oder GraphQL-Anfrage senden. Geben Sie beispielsweise das _ACL Feld in JSON an, wenn Sie eine feingranulare Kontrolle pro Objekt benötigen.
![ACL bearbeiten ACL bearbeiten](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
Für weitere Informationen besuchen Sie die App-Sicherheitsrichtlinien.
Cloud-Code ermöglicht es Ihnen, serverseitige Logik auszuführen, ohne Ihre eigenen Server verwalten zu müssen. Mit Elixir verlassen Sie sich normalerweise auf OTP für die Parallelität, aber hier können Sie einfach JavaScript-Cloud-Code in Back4App erstellen, um Validierung, Trigger oder benutzerdefinierte Geschäftslogik zu behandeln. Dieser Code läuft auf dem Parse-Server, sodass Sie Ihren Elixir-Code auf Client- oder Mikrodienstaufgaben konzentrieren können, während die schwere Arbeit im Cloud-Code erfolgt.
In Ihrer main.js auf dem Back4App Dashboard oder mit der CLI:
Bereitstellen über die Back4app CLI oder indem Sie in das Dashboard unter Cloud Code > Funktionen einfügen und auf Bereitstellen klicken.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Von Elixir aus könnten Sie verwenden:
Back4App verwendet die Parse User-Klasse zur Authentifizierung. Sie können die Registrierung, den Login und das Zurücksetzen des Passworts einfach verwalten. In Elixir verwenden Sie typischerweise REST-Aufrufe:
Back4App unterstützt die Integration mit Google, Apple, Facebook und mehr. In den meisten Fällen leiten Sie die Benutzer zum OAuth-Fluss und verwenden dann die von diesen Anbietern zurückgegebenen Tokens, um die Parse-Anmeldung abzuschließen. Siehe Dokumentation zur sozialen Anmeldung für Details.
Back4App speichert Dateien sicher. Von Elixir aus laden Sie Dateien über REST hoch:
Sie erhalten eine JSON-Antwort mit der Datei-URL, die Sie in einer Klasse (z.B. Foto) zur Referenz speichern können.
Sie können konfigurieren, wer Dateien in den fileUpload-Einstellungen Ihres Back4App-Projekts hochladen kann, und die Uploads auf authentifizierte Benutzer beschränken, wenn gewünscht.
Die E-Mail-Verifizierung stellt sicher, dass die Benutzer die E-Mail-Adresse besitzen, die während der Anmeldung verwendet wurde. Die Passwortzurücksetzung ermöglicht es ihnen, Konten sicher wiederherzustellen. Beide Funktionen sind in Back4App integriert.
- E-Mail-Verifizierung aktivieren unter den „App-Einstellungen“ oder „Authentifizierung“ Ihrer App.
- Konfigurieren Sie die Absenderadresse und E-Mail-Vorlagen.
- Passwortzurücksetzung aktivieren um Benutzern zu ermöglichen, über einen Link, der ihnen per E-Mail gesendet wird, zurückzusetzen.
Sobald es im Dashboard aktiviert ist, können Sie Passwortzurücksetzungen auslösen:
Cloud-Jobs ermöglichen es Ihnen, Routineaufgaben wie das Bereinigen alter Daten oder das Versenden periodischer E-Mails zu automatisieren. Sie schreiben sie in Cloud Code.
- Code bereitstellen.
- Gehen Sie zum Back4app-Dashboard > App-Einstellungen > Servereinstellungen > Hintergrundjobs.
- Planen Sie den Job, um täglich oder in einem von Ihnen gewählten Intervall ausgeführt zu werden.
![Planung eines Cloud-Jobs Planung eines Cloud-Jobs](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Webhooks ermöglichen es Ihrer Back4App-Anwendung, HTTP-Anfragen an einen externen Dienst (z. B. einen Slack-Kanal oder Stripe) zu senden, wenn bestimmte Ereignisse eintreten.
- Navigieren Sie zur Webhook-Konfiguration in Ihrem Back4App-Dashboard > Mehr > Webhooks.
- Setzen Sie den Endpunkt (zum Beispiel, https://your-service.com/webhook-endpoint).
- Konfigurieren Sie Trigger wie „Neuer Datensatz in der Todo-Klasse.“
![Einen Webhook hinzufügen Einen Webhook hinzufügen](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Wenn Sie Daten an Slack senden möchten, wann immer ein Todo erstellt wird, können Sie einen neuen Webhook hinzufügen, der auf Ihre Slack-Eingangs-Webhook-URL zeigt. Sie können auch Webhooks im Cloud Code definieren, indem Sie benutzerdefinierte HTTP-Anfragen in Triggern wie afterSave senden.
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
Die Back4app Admin App ist eine benutzerfreundliche Oberfläche zur Verwaltung Ihrer Daten. Sie können sie aktivieren unter App Dashboard > Mehr > Admin App.
![Admin App aktivieren Admin App aktivieren](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
- Erstellen Sie einen ersten Admin-Benutzer, der die Rolle B4aAdminUser und zusätzliche Klassen einrichtet.
- Weisen Sie eine Subdomain zu zu, um auf die Admin-Oberfläche zuzugreifen.
- Melden Sie sich an um Daten in einer einfachen Oberfläche anzuzeigen und zu verwalten.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
Indem Sie dieses Tutorial zur Erstellung eines Backends für Elixir mit Back4App befolgen, haben Sie:
- Eine sichere Backend-Struktur auf der Plattform von Back4App mit Elixir für die Integration erstellt.
- Eine Datenbank mit Klassen, Datentypen und Beziehungen eingerichtet.
- REST/GraphQL verwendet, um mit Ihren Daten aus Elixir zu interagieren.
- Sicherheit mit ACLs und CLPs angewendet.
- Benutzerdefinierte Logik mit Cloud Code-Funktionen hinzugefügt.
- Benutzerauthentifizierung mit E-Mail-Verifizierung und Passwortzurücksetzungen konfiguriert.
- Dateispeicherung und -abruf verwaltet.
- Hintergrundjobs für Automatisierung geplant.
- Externe Dienste mit Webhooks integriert.
- Das Back4App Admin Panel für eine einfache Datenverwaltung erkundet.
Mit dem Nebenläufigkeitsmodell von Elixir (betrieben von der Erlang-VM) und OTP, kombiniert mit den skalierbaren und flexiblen Diensten von Back4App, können Sie hochrobuste Backends erstellen.
Setzen Sie die Erkundung weiterer fortgeschrittener Funktionen fort, integrieren Sie Ihre Geschäftslogik und lassen Sie Back4App Ihnen helfen, die schwere Arbeit zu erledigen.
- Erstellen Sie eine produktionsbereite Elixir-App indem Sie dieses Backend mit Ihrem bevorzugten Elixir/Phoenix-Web-Framework kombinieren.
- Integrieren Sie erweiterte Funktionen wie rollenbasierte Zugriffskontrolle oder Drittanbieter-APIs (Zahlungsgateways, Messaging-Dienste).
- Durchsuchen Sie die offizielle Dokumentation von Back4app für erweiterte Sicherheit, Protokolle, Leistungsoptimierung und mehr.
- Sehen Sie sich andere Tutorials an für Echtzeitanwendungen, IoT-Dashboards oder standortbasierte Dienste. Mit Mustererkennung und OTP-Konkurenz stehen Ihnen viele Anwendungsmöglichkeiten zur Verfügung!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)