Projektbeschreibung
ÜbersetztDie Arbeit umfasst den gesamten GraphQL-Backend-Stack: ein typ-first Schema für unsere Schlüsselentitäten, Resolver auf einer optimierten PostgreSQL-Schicht, JWT-Authentifizierung, die durch den Kontext übergeben wird, und autorisierte Felder, sodass verschiedene Rollen nur das sehen, was sie sollten. Der Echtzeitteil ist ebenfalls wichtig — Bestellstatus und Benachrichtigungen müssen die Clients über WebSocket-Abonnements erreichen, nicht durch ständiges Polling. Neben der Korrektheit kümmern wir uns um Sicherheit und Kostenkontrolle bei Abfragen: Tiefen- und Komplexitätsgrenzen sowie persistente Abfragen für mobile Clients.
Da dies eine Live-API ersetzt, sind ein sauberer Migrationspfad und klare Dokumentation Teil der Aufgabe, kein Bonus. Erzählen Sie uns von einer GraphQL API, die Sie ausgeliefert haben, und wie Sie Autorisierungs- und Leistungsprobleme gelöst haben. Detaillierter Umfang unten.
1. Schema-Design
— Typ-first: Benutzer, Produkt, Bestellung, Bewertung, Benachrichtigung
— Eingabetypen, Mutationen
— Benutzerdefinierte Skalare (Datum, JSON, Upload)
— Enum-Typen für Statusfelder
2. Implementierung
— Apollo Server 4 + Express
— DataLoader zur Vermeidung von N+1-Abfragen
— JWT-Authentifizierung über den Kontext
— Feldbasierte Autorisierung
— Abonnements über WebSocket (Bestellstatus, Benachrichtigungen)
3. Leistung und Qualität
— Abfrage-Tiefe/Komplexitätsgrenzen
— Persistente Abfragen für mobile Clients
— PostgreSQL-Optimierung (EXPLAIN ANALYZE)
— Unit-Tests für Resolver (Jest + Supertest)
— Apollo Studio-Integration
4. Dokumentation
— Dokumentiertes Schema (Beschreibungen aller Typen)
— Postman/Insomnia-Sammlung
— Migrationsleitfaden von REST