Heim > Web-Frontend > CSS-Tutorial > Implementierung eines einzelnen GraphQL über mehrere Datenquellen hinweg

Implementierung eines einzelnen GraphQL über mehrere Datenquellen hinweg

Joseph Gordon-Levitt
Freigeben: 2025-03-20 09:43:13
Original
686 Leute haben es durchsucht

Implementierung eines einzelnen GraphQL über mehrere Datenquellen hinweg

Dieser Artikel zeigt das Schema -Nähten über mehrere Fauna -Instanzen hinweg und erstellt eine einheitliche GraphQL -API aus unterschiedlichen Datenquellen. Wir werden auch die Kombination von Fauna mit anderen GraphQL -Diensten untersuchen.

Schemasticken verstehen

Das Schema -Nähten ist eine Technik zum Erstellen einer einzelnen GraphQL -API aus mehreren zugrunde liegenden GraphQL -APIs.

Warum Schema -Nähte verwenden?

In großem Maßstab werden häufig Mikrodienste zur Modularität verwendet. Client -Anwendungen benötigen jedoch häufig Daten aus mehreren Quellen. Eine einheitliche GraphQL -API bietet eine saubere Schnittstelle, aber das Erstellen eines monolithischen Servers kann problematisch sein. Die native GraphQL von Fauna pro Datenbank ist ideal, aber mehrere Datenbanken erfordern eine Verbindung zu mehreren Instanzen, wodurch eine enge Kopplung erstellt wird. Das Schema -Nähen löst dies durch Kombination mehrerer GraphQL -Dienste in ein einzelnes einheitliches Schema. Dieser Artikel deckt:

  1. Integration mehrerer Fauna -Instanzen in einen einzelnen GraphQL -Dienst.
  2. Kombination von Fauna mit anderen GraphQL -APIs und Datenquellen.
  3. Erstellen eines serverlosen GraphQL -Gateways mit AWS Lambda.

Konsolidierung mehrerer Fauna -Instanzen

Kombinieren wir mehrere Fauna -Datenbankinstanzen (z. B. Product , Inventory , Review ) in einen einzelnen GraphQL -Dienst. Jede Datenbank hat eine eigene GraphQL -API (Subgraph). Unser Ziel ist ein einheitliches Diagramm für Clientanwendungen, um Daten in allen Quellen abzufragen.

Diese einheitliche Grafik wird unser Gateway -Service sein. Wir werden dies mit node.js.

  1. Projekt -Setup: Erstellen Sie ein Node.js -Projekt:

     Mkdir My-Gateway
    CD My-Gateway
    npm init -yes
    Nach dem Login kopieren
  2. Abhängigkeiten installieren:

     NPM I Express-Graphql Graphql @Graphql-Tools/Schema @Graphql-tools/stitch @Graphql-tools/Wrap Cross-Fetch-Save
    Nach dem Login kopieren
  3. Basic GraphQL Server (Gateway.js): Beginnen Sie mit einem einfachen Express -GraphQL -Server:

     // Gateway.js (erste Version)
    // ... (Express -Server -Setup) ...
    Nach dem Login kopieren

    (Dieser anfängliche Code wäre der Bare-Bones-Server, ähnlich wie das ursprüngliche Beispiel, aber es ist für die Kürze weggelassen, sich auf die Stichaspekte zu konzentrieren.)

  4. Fauna -Datenbank -Setup: Erstellen Sie drei Fauna -Datenbanken ( Product , Inventory , Review ) und generieren Sie Administratorschlüssel. Definieren Sie GraphQL -Schemas für jede Datenbank (wie im ursprünglichen Beispiel gezeigt).

  5. Gateway Service Enhancement (Gateway.js): Implementieren Sie das Schema-Nähten mit @graphql-tools/stitch . Dieser Abschnitt umfasst den makeRemoteExecutor und makeGatewaySchema -Funktionen, wie im Original beschrieben, jedoch mit einer verbesserten Klarheit und potenziell umgestaltet für eine bessere Lesbarkeit. Wichtige Verbesserungen wären:

    • Löschen Kommentare, die den Zweck jeder Funktion erklären.
    • Fehlerbehandlung für API -Aufrufe.
    • Konfiguration von API -Schlüssel über Umgebungsvariablen anstelle von Hardcoding.
  6. APIs von Drittanbietern nachdenken: Erweitern stitchSchemas das Gateway, makeRemoteExecutor die GraphQL-APIs von Drittanbietern (z.

  7. Bereitstellung für AWS Lambda: Verwenden Sie das serverlose Framework, um das Gateway für eine AWS -Lambda -Funktion bereitzustellen. Installieren Sie die erforderlichen Abhängigkeiten ( serverless , serverless-http , body-parser ). Erstellen Sie eine serverless.yaml -Datei (wie im Original gezeigt). Ändern Sie gateway.js , um in serverless-http für die ordnungsgemäße Handhabung der Lambda-Funktion zu integrieren. Bereitstellung mit serverless deploy .

Abschluss

Das Schema -Nähten bietet eine leistungsstarke Lösung für den Aufbau skalierbarer und wartbarer GraphQL -APIs aus mehreren Datenquellen. Während dieser Artikel Fauna und AWS Lambda verwendet, gelten die Prinzipien im Großen und Ganzen für andere GraphQL -Dienste und serverlose Plattformen. Alternative Ansätze wie Apollo Federation bieten ähnliche Funktionen.

Das obige ist der detaillierte Inhalt vonImplementierung eines einzelnen GraphQL über mehrere Datenquellen hinweg. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage