Aufbau robuster Backends beinhaltet häufig eine umfassende Kodierung für CRUD-Operationen, Autorisierung und Geschäftslogik-ein zeitaufwändiger Prozess. In diesem Artikel wird untersucht, wie Hasura und PostgreSQL die Backend -Entwicklung optimieren und schnellere Apps mit minimalem Codierungsaufwand ermöglichen.
Hasura, eine Open-Source-GraphQL-Engine, generiert automatisch GraphQL- und REST-APIs aus Ihrem Datenbankschema. Es unterstützt Datenmodellierung, Echtzeitabfragen, Ereignisprogramme, rollenbasierte Autorisierung und benutzerdefinierte Geschäftslogikausführung über GraphQL-Aktionen.
postgreSQL, eine leistungsstarke relationale Open-Source-Datenbank, bietet Funktionen auf Unternehmensebene, die mit Oracle und Microsoft SQL Server vergleichbar ist, was es zu einer zuverlässigen Wahl für große Anwendungen macht. Die Verwendung durch Unternehmen wie Netflix und Spotify unterstreicht seine Fähigkeiten. Während Hasura andere Datenbanken unterstützt, konzentriert sich dieser Artikel aufgrund seiner Zugänglichkeit und Open-Source-Natur auf PostgreSQL. MySQL -Unterstützung ist geplant.
Dieser Leitfaden zeigt die Funktionen von Hasura zum Erstellen skalierbarer Backends für Web- und Mobile -Apps. Es zeigt auch, wie die Funktionen von PostgreSQL, auf die über SQL zugegriffen wird, komplexe Berechnungen und Analysen durchführen kann und die Notwendigkeit des benutzerdefinierten serverseitigen Codes verringert.
Schlüsselvorteile:
- schnelle Backend-Entwicklung: Hasuras automatisch erzeugte APIs verkürzen die Codierungszeit erheblich.
- postgreSQL Power: Nutzen Sie die erweiterten Funktionen von Postgresql (Tabelle Vererbung, Parallelitätskontrolle, JSON/Räum -Datentypen) für die erweiterte Datenintegrität und Leistung.
. -
Echtzeitfähigkeiten:
Hasuras Echtzeit-Abfrage, Ereignisprogrammierung und rollenbasierte Autorisierung erstellen hoch ansprechende Anwendungen. -
Einfache Bereitstellung:
HASSURA mit Docker für die lokale Entwicklung oder HASURA -Cloud für skalierbare, sichere, global verteilte Anwendungen mit Funktionen wie Überwachung und Caching bereitstellen. -
umfassende Webkonsole:
Datenmodellierung, CRUD -Operationen und komplexe Abfragen in der intuitiven Webkonsole von Hasura verwalten. Integrieren Sie sich in Authentifizierungs- und Dateispeicheranbieter. -
optimierte Workflows:
Verwenden Sie die Migrationsinstrumente von Hasura und die Umgebung für nahtlose Übergänge zwischen Entwicklung und Produktion, unterstützt CI/CD.
Warum postgresql?
auswählen
relationale Datenbanken wie PostgreSQL bieten Vorteile gegenüber anderen Datenbanktypen, einschließlich Schema -Modellierung, Verbindungsoperationen und Säuretransaktionen - entscheidend für die Datenintegrität. PostgreSQL zeichnet sich weiter mit: aus
- Tabelle Vererbung: Effiziente Datenmodellierung.
- Erweiterte Parallelitätskontrolle: verarbeitet Hochvolumensendaten, die in Umgebungen mit mehreren Benutzern effektiv geschrieben werden.
- Fehlertoleranz und Datenintegrität: reduziert die Risiken der Datenbeschädigung.
- Eindeutige Datentypen: unterstützt JSON- und räumliche Datentypen, von Vorteil für verschiedene Anwendungen.
postgreSQL fungiert auch als Berechnungsserver, wodurch benutzerdefinierte Funktionen und Auslöser für analytische Aufgaben ausgeführt werden und die Notwendigkeit separater serverseitiger Code beseitigt. Dies wird mit:
erreicht
- Ansichten: Vereinfachen Sie komplexe Abfragen.
- Funktionen & Operatoren: Datumsformatierung, Musteranpassung und arithmetische Operationen durchführen.
- Erweiterungen: Die Funktionalität von PostgreSQL (z. B. postgis).
- prozedurale Sprachen: Benutzerdefinierte Funktionen und gespeicherte Prozeduren schreiben (z. B. PL/PGSQL).
Hasura enthält diese PostgreSQL -Logik über GraphQL, wodurch sie für Frontend -Anwendungen leicht zugänglich ist.
postgreSQL Beispiele:
- Beispiel 1 (Online -Benutzeransicht): Eine Ansicht zum Abrufen der derzeit aktiven Benutzer:
:
<code class="language-sql">CREATE OR REPLACE VIEW "public"."online_users" AS
SELECT users.id, users.last_seen
FROM users
WHERE (users.last_seen >= (now() - '00:00:30'::interval));</code>
-
Beispiel 2 (Geolokalisierung mit PostGIS):
Suchen Sie Geschäfte innerhalb eines Radius von 1000 Meter:
<code class="language-sql">SELECT id, name, address, geom
FROM Seattle_Starbucks
WHERE ST_DWithin(geom, ST_MakePoint(-122.325959,47.625138)::geography, 1000);</code>
Was ist Hasura?
Hasura ist eine Open-Source-Echtzeit-GraphQL-Engine, die APIs für Ihre Datenbank generiert. Die Webkonsole ermöglicht:
-
Schema Modellierung:
Tabellen erstellen, Beziehungen definieren und Daten verwalten. -
crud operations:
Aktionen erstellen, lesen, aktualisieren und löschen. -
rollenbasierte Zugriffskontrolle:
Implementieren Sie granulare Berechtigungen. -
GraphQL/REST -Endpunkterstellung:
APIs für Ihre Daten generieren. -
SQL Ausführung:
Benutzerdefinierte SQL -Abfragen ausführen. -
Aktion und Triggerdefinition:
Aufgaben automatisieren und Ereignisse behandeln.
Hinweis: Hasura erfordert eine Integration mit einem separaten Authentifizierungsanbieter (z. B. Auth0, Firebase) und Dateispeicherdienst. Nhost bietet eine integrierte Lösung.
Starten von Hasura:
- Docker: für die lokale Entwicklung empfohlen, bietet eine einfache Einrichtung und keine Ratenbeschränkung.
- HASURA -Cloud: vereinfacht die Bereitstellung mit Skalierbarkeit, Sicherheit und globaler Verteilung, einschließlich Überwachungs- und Caching -Funktionen. Eine kostenlose Stufe ist mit Einschränkungen erhältlich.
HASURA -Funktionen (detaillierte Übersicht):
- Datenmanager: Visuelles Schema -Designer zum Erstellen von Tabellen, Definieren von Beziehungen und Verwaltung von Datentypen (einschließlich JSON- und benutzerdefinierter Typen).
- Autorisierung: rollenbasierte Zugriffskontrolle mit granularen Berechtigungen für Einfügen, Auswahl, Aktualisierung und Löschen von Vorgängen.
- Abfragen: Führen Sie verschiedene GraphQL -Abfragen (einfach, verschachtelt, Aggregation, Filterung) direkt in der Konsole aus.
- Mutationen: Vorgänge in Einfügung, Upsert, Aktualisierung und Löschen von Transaktionen durchführen.
- Abonnements: Implementieren von Echtzeitdatenaktualisierungen mithilfe von GraphQL-Abonnements über WebSockets.
- Remote-Schemas: Integrieren Sie in APIs von Drittanbietern für Daten und Logik.
- Aktionen: Führen Sie die benutzerdefinierte Geschäftslogik über Webhooks mit einer beliebigen Programmiersprache aus.
- Ereignisauslöser: Invoke Webhooks basierend auf Datenbankereignissen (einfügen, aktualisieren, löschen). Unterstützt manuelle Aufruf.
- Geplante Auslöser: Aufgaben regelmäßig (Cron) oder einmal (einmal) über Webhooks ausführen.
- Migrationen und Umgebungen: Schemaänderungen verwalten mithilfe von Migrationsdateien für Datenbank- und HASURA -Metadaten, die CI/CD -Workflows unterstützen.
Bereitstellungsoptionen:
- Hasura Cloud: Einfachste Produktionsbereitstellung.
- externes Hosting: Heroku, digitaler Ozean, Render, Azure, Kubernetes, AWS (komplexer).
- nHost: All-in-One-BAAS-Lösung einschließlich PostgreSQL, Hasura, Authentifizierung und Speicher.
Zusammenfassung:
Hasura und PostgreSQL bieten eine leistungsstarke Kombination für die schnelle Backend -Entwicklung. Die reduzierten Codierungsaufwand, Echtzeitfunktionen und robuste Funktionen machen es zu einer überzeugenden Lösung für den Aufbau skalierbarer und wartbarer Anwendungen. Obwohl es in jeder Hinsicht nicht so merkmal reich ist wie einige Alternativen, sind die Benutzerfreundlichkeit, die Fokussierung auf Leistung und die Natur von Open-Source erhebliche Vorteile.
häufig gestellte Fragen (FAQs): (Die bereitgestellten FAQs sind bereits umfassend und gut geschrieben; keine Änderung erforderlich.)
Das obige ist der detaillierte Inhalt vonSo bauen Sie Ihr Backend mit Hasura und Postgresql auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!