Apollo Server für JavaScript (Node.js): Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Apollo Server für JavaScript (Node.js): Komplettguide mit Beispielen

Apollo Server ist eine leistungsstarke und flexible Bibliothek zur Erstellung von GraphQL-Servern mit Node.js. Als Teil des Apollo GraphQL-Ökosystems bietet sie Entwicklern ein praktisches Toolkit für den Aufbau performanter, skalierbarer und leicht wartbarer APIs. Wenn Sie REST kennen, können Sie sich GraphQL als eine Alternative vorstellen, bei der der Client selbst entscheidet, welche Daten er benötigt, und der Server genau das liefert, was angefordert wurde. Apollo Server übernimmt die gesamte Routinearbeit: Parsen von Anfragen, Schema-Validierung, Ausführung von Resolvern und Formatierung der Antworten.

Warum Apollo Server verwenden? Erstens vereinfacht er die Entwicklung von GraphQL-Servern erheblich. Sie müssen keine Parser oder Validatoren schreiben und sich nicht um Sicherheitsaspekte (Schutz vor SQL-Injection, Begrenzung der Abfragetiefe usw.) kümmern – all das ist bereits integriert. Zweitens unterstützt Apollo Server zahlreiche Integrationen: mit Express, Fastify, Koa, AWS Lambda, Azure Functions und anderen Plattformen. Das bedeutet, Sie können den Server überall einsetzen – von einer einfachen lokalen Anwendung bis hin zu einer serverlosen Funktion. Drittens wird die Bibliothek aktiv weiterentwickelt, hat eine große Community und eine hervorragende Dokumentation, was sie zum De-facto-Standard für GraphQL in Node.js macht.

In diesem Artikel gehen wir detailliert auf die Installation, die wichtigsten Methoden ein, schreiben mehrere praktische Beispiele und geben Tipps zur Leistungsoptimierung. Der Stoff ist sowohl für Anfänger geeignet, die gerade mit GraphQL beginnen, als auch für erfahrene Entwickler, die ihr Wissen über Apollo Server vertiefen möchten.

1. Installation

Für die Arbeit mit Apollo Server benötigen Sie Node.js Version 14 oder höher. Die Installation erfolgt über npm (oder yarn). Das Hauptpaket ist @apollo/server. Außerdem benötigen Sie graphql – den Kern der GraphQL-Sprache, ohne den Apollo Server nicht funktioniert.

npm install @apollo/server graphql

Wenn Sie Apollo Server mit Express verwenden möchten (die beliebteste Variante), installieren Sie zusätzlich:

npm install express cors body-parser
npm install @as-integrations/express

Für die Arbeit mit TypeScript (empfohlen) installieren Sie die Typen:

npm install --save-dev typescript @types/node @types/express

2. Schnellstart – Minimales funktionierendes Beispiel

Lassen Sie uns einen einfachen GraphQL-Server erstellen, der den Benutzer begrüßt. Erstellen Sie eine Datei index.js und fügen Sie folgenden Code hinzu:

import { ApolloServer } from '@apollo/server';
import { startStandaloneServer } from '@apollo/server/standalone';

// 1. Schema definieren (typeDefs)
const typeDefs = `#graphql
  type Query {
    hello: String
  }
`;

// 2. Resolver definieren
const resolvers = {
  Query: {
    hello: () => 'Hallo Welt! Das ist Apollo Server!',
  },
};

// 3. Server-Instanz erstellen
const server = new ApolloServer({
  typeDefs,
  resolvers,
});

// 4. Server starten
const { url } = await startStandaloneServer(server, {
  listen: { port: 4000 },
});

console.log(`🚀 Server läuft unter: ${url}`);

Starten Sie den Server mit dem Befehl node index.js (wenn Sie ES-Module verwenden, fügen Sie "type": "module" in die package.json ein). Öffnen Sie den Browser und gehen Sie zu http://localhost:4000. Sie sehen die Apollo Sandbox-Oberfläche, in der Sie folgende Abfrage ausführen können:

query {
  hello
}

Die Antwort sollte sein: { "data": { "hello": "Hallo Welt! Das ist Apollo Server!" } }. Herzlichen Glückwunsch, Ihr erster GraphQL-Server funktioniert!

3. Wichtige Methoden/Funktionen/Klassen

Betrachten wir die Schlüsselelemente von Apollo Server. Für jedes Element geben wir die Signatur, eine kurze Beschreibung und ein Beispiel an.

3.1. new ApolloServer(config)

Signatur:

Empfehlungen