GraphQL in Rust: Moderne APIs mit async-graphql und Juniper erstellen
300 Seiten
German
PDF
4.5

GraphQL in Rust: Moderne APIs mit async-graphql und Juniper erstellen

GraphQL in Rust: Moderne APIs mit async-graphql und Juniper erstellen

Autor:

Jahr:

Zusammenfassung:

Das Buch „GraphQL in Rust“ ist ein umfassender Leitfaden zur Entwicklung moderner, leistungsstarker APIs mit der Programmiersprache Rust und ihrem leistungsstarken Typsystem. Im Gegensatz zu traditionellen REST-Ansätzen bietet GraphQL Clients die Flexibilität, nur die benötigten Daten anzufragen, während Rust Speichersicherheit und beeindruckende Ausführungsgeschwindigkeit garantiert. Dieses Buch vereint die Stärken beider Technologien und bietet einen praktischen Weg von den Grundlagen bis zur Erstellung production-ready Server.



Für wen ist dieses Buch?

Das Buch richtet sich an Entwickler, die bereits mit den Grundlagen von Rust vertraut sind (Ownership, Borrowing, Lifetimes, Traits) und die Erstellung von Webdiensten erlernen möchten. Sie erfahren, wie Sie das Rust-Ökosystem für den Aufbau komplexer, aber eleganter APIs nutzen können. Erfahrung mit anderen Programmiersprachen (Python, JavaScript, Go) ist von Vorteil, da Sie Ansätze vergleichen und die Vorteile von Rust erkennen können.



Was Sie lernen werden

  • Grundlagen von GraphQL: Typsystem, Schemata, Abfragen, Mutationen und Subscriptions. Wie Sie flexible und effiziente Datenschemata entwerfen.
  • Zwei Hauptframeworks: Detaillierte Untersuchung von async-graphql (das beliebteste, asynchron, mit Unterstützung für Subscriptions über WebSockets) und Juniper (ausgereift, synchron, mit Fokus auf Einfachheit). Sie lernen, das passende Werkzeug für die Aufgabe auszuwählen.
  • Asynchronität und Leistung: Einsatz von tokio oder async-std zur Verarbeitung tausender Anfragen pro Sekunde. Optimierung von Resolvern, Paginierung, Batch-Laden von Daten (DataLoader) zur Vermeidung des N+1-Problems.
  • Sicherheit und Autorisierung: Integration der Authentifizierung (JWT, Sessions), rollenbasiertes Zugriffsmodell auf Feld- und Typebene. Schutz vor Injection- und Depth-Limit-Angriffen.
  • Integration mit Datenbanken: Arbeit mit SQL (über sqlx oder diesel) und NoSQL (MongoDB, Redis). Implementierung komplexer Abfragen und Transaktionen im Kontext von GraphQL.
  • Testen und Debuggen: Schreiben von Unit-Tests für Resolver, Integrationstests für GraphQL-Abfragen, Tools zur Profilerstellung.
  • Deployment und Monitoring: Erstellung einer Binärdatei, Containerisierung (Docker), Konfiguration von Metriken (Prometheus) und Logging (tracing).


Struktur des Buches

Der erste Teil führt in die Konzepte von GraphQL und die Einrichtung der Umgebung ein. Der zweite Teil taucht am Beispiel der Erstellung eines Blogs in async-graphql ein. Der dritte Teil widmet sich Juniper und alternativen Ansätzen. Der vierte Teil behandelt fortgeschrittene Themen: Federation (Apollo Federation), Echtzeit-Subscriptions, Migration von REST zu GraphQL. Jedes Kapitel enthält praktische Aufgaben und fertige Codebeispiele, die im Repository verfügbar sind.



Am Ende des Buches werden Sie in der Lage sein, zuverlässige, schnelle und skalierbare GraphQL-Dienste in Rust zu erstellen, die sowohl in einer Microservice-Architektur als auch in monolithischen Anwendungen eingesetzt werden können. Dies ist nicht nur ein Nachschlagewerk – es ist ein praktisches Werkzeug zur Verbesserung Ihrer Qualifikationen als Backend-Entwickler.

Empfehlungen