00:00:00Was wäre, wenn deine Postgres-Datenbank die API wäre und du überhaupt keinen Backend-Code schreiben müsstest?
00:00:05Jedes Mal, wenn du eine API baust, schreibst du denselben Backend-Code immer wieder. Routen, Controller, Validierung, Auth,
00:00:14all das nur, um mit deiner Datenbank zu kommunizieren. Dann änderst du eine Spalte und alles bricht zusammen. Kein benutzerdefinierter Backend-Code. Keine Controller. Keine ORM-Ebene.
00:00:21Genau das macht PostgREST. Es ist der Motor hinter Supabase. Es bewältigt echten Produktions-Traffic und in nur wenigen Minuten
00:00:29werde ich dir zeigen, wie das geht.
00:00:31Wenn du APIs baust, trifft dieses Tool die nervigsten Schmerzpunkte im gesamten Stack.
00:00:40Duplizierte Logik. Du definierst die Daten in der Datenbank.
00:00:44Dann definierst du Zugriffsregeln, Backend-Code und Validierung an einer anderen Stelle.
00:00:49Dann machen wir dasselbe für das Response-Handling woanders. Dasselbe System, mehrere Ebenen, mehrfache Fehlerquellen.
00:00:56Postgres macht damit Schluss. Es hat über 26.000 Sterne auf GitHub und wird von Supabase im Produktionsmaßstab eingesetzt.
00:01:03Es verwandelt dein Schema in wenigen Minuten in eine produktionsreife REST-API. Es gibt kein ORM, keine Controller.
00:01:10Die Sicherheit liegt in der Datenbank, was weniger Duplikation, weniger Wartung und viel weniger Zeitaufwand für den langweiligen Teil bedeutet.
00:01:19Ich zeige es dir. Wenn dir Coding-Tools gefallen, die deinen Workflow beschleunigen, abonniere unbedingt den Kanal.
00:01:24Wir bringen ständig neue Videos heraus.
00:01:26Alles klar. Jetzt bauen wir das Ganze mal auf. Okay, hier ist das Setup. Drei Container.
00:01:32Das ist alles. Postgres, PostgREST und Swagger UI für die Dokumentation.
00:01:38Hier ist die Docker-Compose-Datei. Da passiert nicht viel. Nur drei Dienste, die ich miteinander verbunden habe.
00:01:45Ich starte es mit dem bewährten Befehl docker-compose. Es läuft an und ich bin fertig.
00:01:51Kein Installieren von Abhängigkeiten. Kein Aufsetzen eines Servers. Schauen wir uns nun die Datenbank an.
00:01:55Ich führe diesen Docker-Befehl hier aus und das war's. Eine super einfache Todos-Tabelle. ID, Titel, erledigt, erstellt, alles Standard.
00:02:04Das ist wirklich alles, was hier passiert. Aber jetzt kommt der Teil, an dem es nützlich wird.
00:02:09Row-Level Security. Wir definieren direkt in SQL innerhalb der Datenbank, wer auf was zugreifen darf.
00:02:17Keine Backend-Auth-Logik, die irgendwo anders in unserem System sitzt. Hier ist die Richtlinie.
00:02:22Ich habe anonymen Vollzugriff mit true eingestellt. Vorerst ist also alles erlaubt. Pass jetzt auf.
00:02:29Ich rufe die Todos mit diesem Curl-Befehl ab und das war's. Vollständiges JSON direkt aus Postgres.
00:02:35Kein API-Code. Darauf aufbauend filtere ich es jetzt kurz. Es funktioniert sofort.
00:02:41Wenn ich es sortiere, boom, da haben wir's. Jetzt erstellen wir eine neue Zeile, senden einen POST-Request mit JSON-Body und fertig.
00:02:50Und es ist bereits in der Datenbank. Es gibt keine ORM-Ebene, die hier hinterherhinken muss.
00:02:56Und hier ist der Teil, der die Leute wirklich begeistert: OpenAPI-Docs, automatisch generierte Swagger UI. Es ist einfach da.
00:03:04Ich öffne es und wir erhalten eine voll interaktive API. Du kannst alles erkunden, Endpunkte testen und Schemas sehen.
00:03:11Von Null an hast du nun vollständiges CRUD, Filtern, Sortieren, Paginierung. Du hast Basis-Auth via RLS und Docs in unter einer Minute.
00:03:21Warum nutzen Leute das überhaupt? Falls das noch nicht genug war: Weil traditionelle Backend-Arbeit eine Last ist.
00:03:26Und das meiste davon ist keine Produktarbeit. Was wir eigentlich tun, ist reine Wartungsarbeit, oder?
00:03:33Denk an den normalen Stack, vielleicht Express, Prisma, Controller, Services, Validierung an einem Ort.
00:03:40Dann haben wir Auth an einem anderen Ort. Deine Datenbanklogik ist wieder ganz woanders.
00:03:45Vergleiche das nun mit Postgres. Dein Schema definiert die API. Deine Sicherheit ist RLS.
00:03:52Deine Beziehungen existieren bereits in der Datenbank. Anstatt eine Übersetzungsebene um deine Daten zu bauen, geben wir die Daten einfach korrekt frei.
00:04:02Das ist ein großer Unterschied. Vergleiche das mit einem benutzerdefinierten Backend. Da musst du alles selbst schreiben.
00:04:07Das gibt dir Flexibilität, sicher. Aber es bedeutet auch viel mehr Code, den man warten muss.
00:04:13Postgres bleibt einfacher. REST plus Postgres. Die Sicherheit liegt in der Datenbank und ist nicht über Middleware oder Root-Handler verstreut.
00:04:23Dein Wartungsaufwand bleibt gering, weil deine API deinem Schema folgt. Deshalb mögen die Leute es.
00:04:28Fairerweise muss man sagen: Hier kriegen Leute Probleme, denn wenn sich etwas so sauber anfühlt, tun manche so, als löse es alles.
00:04:34Das löst nicht alles, okay? Es gibt immer noch Dinge, auf die man achten muss.
00:04:38Es gibt Kompromisse, und du solltest wissen, worauf du achten musst, bevor du es überhaupt anrührst.
00:04:43Was die Leute hier lieben, ist ziemlich offensichtlich: Es ist schnell aufzubauen. Man kommt sehr fix von der Idee zur funktionierenden API.
00:04:51Und es skaliert auch wirklich gut. Supabase beweist das im Grunde.
00:04:55Sie nutzen das. Aber die Nachteile sind Dinge wie: Massive Nutzung von Row-Level Security erhöht die Datenbanklast.
00:05:02Du musst also genau überlegen, wie du das entwirfst. Komplexe Logik kann dich zu vielen SQL-Funktionen oder Views drängen.
00:05:10Manche Leute lieben das, andere werden es hassen. Solltest du es also benutzen oder ausprobieren?
00:05:15Ja, für die richtigen Projekte. Wenn du Prototypen, MVPs oder irgendetwas baust, das auf Postgres basiert, dann probier es aus, oder?
00:05:23Du wirst schneller vorankommen. Du schreibst weniger Code und erhältst stärkere Sicherheitsstandards, indem du die Regeln in die Datenbank verlagerst.
00:05:32Wenn deine App sehr komplexe Logik hat, willst du vielleicht trotzdem eine dünne Backend-Schicht darüber, eine BFF-Ebene für Sonderfälle.
00:05:40Aber selbst dann kann Postgres die meiste Schwerstarbeit darunter erledigen. Die wichtigste Erkenntnis ist also: Mit Postgres lieferst du schneller, sicherer und wartungsärmer.
00:05:50Deine Datenbank wird zur eigentlichen Quelle der Daten, und deine API ergibt sich daraus, anstatt ein eigenes, separates System zu werden.
00:05:58Wenn dir solche Coding-Tools und Tipps gefallen, abonniere den Better Stack-Kanal. Wir sehen uns im nächsten Video.