Backend
Hinter jedem guten Frontend steckt etwas. Lerne, die Server und APIs zu bauen, die deine Daten speichern, prüfen und ausliefern.
Serien
Alle Tutorials

Eine kleine REST-API mit Hono bauen
Erstelle mit Hono eine Quest-Tracker-API in TypeScript: Routen, Statuscodes und Eingabeprüfung, alles in einer kleinen Datei.
Einsteiger20 Min.
Teil 1: Fastify trifft GraphQL Yoga
Richte ein TypeScript-Projekt ohne Build-Schritt ein, setz GraphQL Yoga auf einen Fastify-Server und schick ihm deine ersten Queries.
Fortgeschritten20 Min.
Teil 2: Eine Datenbank mit PostgreSQL und Drizzle
Starte PostgreSQL in Docker, beschreib die Tabellen des Gildenbretts in TypeScript mit Drizzle, leg sie mit einer Migration an und füll sie mit Beispieldaten.
Fortgeschritten25 Min.
Teil 3: Erst das Schema, typisiert von Codegen
Schreib das GraphQL-Schema des Gildenbretts, lass GraphQL Codegen daraus die Typen der Resolver erzeugen, beantworte Queries aus PostgreSQL und finde das N+1-Problem im SQL-Log.
Fortgeschritten25 Min.
Teil 4: Bündeln mit DataLoader
Sammle die Abfragen eines Requests mit DataLoader und beantworte sie mit einer Abfrage pro Tabelle, sodass das Questbrett drei SQL-Abfragen braucht statt sechzehn.
Fortgeschritten25 Min.
Teil 5: Mutations und Live-Updates mit Subscriptions
Schreib Quests mit Mutations aus, nimm sie an und erledige sie, schick jede Änderung über Server-Sent Events an die Clients, die sie abonniert haben, und halt den Cache von DataLoader in langlebigen Subscriptions frisch.
Fortgeschritten30 Min.
Teil 6: Subscriptions über mehrere Instanzen mit Valkey
Starte eine zweite Instanz der API, sieh zu, wie ihre Abonnenten die Events der ersten verpassen, und teil die Events über Valkey, damit jede Instanz jede Änderung mitbekommt, selbst nach einem Neustart von Valkey.
Fortgeschritten20 Min.
Teil 7: Ganze Antworten in Valkey cachen
Cache komplette Query-Ergebnisse mit dem Response-Cache von Yoga in Valkey, räum sie ab, wenn Mutations die Daten ändern, beantworte wiederholte GET-Requests mit 304 und halt die API am Laufen, wenn der Cache ausfällt.
Fortgeschritten25 Min.
Teil 8: Query-Limits und Persisted Operations
Schütz die API mit einem Tiefenlimit und einem Kostenlimit vor Operationen, die zu tief oder zu teuer sind, und beschränk sie mit Persisted Operations auf die Operationen deiner eigenen Clients.
Fortgeschritten25 Min.
