GraphQL ist eine Abfragesprache, mit der Daten in APIs angefordert werden können. Es handelt sich um eine stark typisierte Abfragesprache, die uns dabei hilft, die Felder zu definieren, die in der API angefordert werden können, sowie den Typ jedes Felds. GraphQL wurde ursprünglich von Facebook entwickelt und ist seitdem Open Source und wird häufig zum Erstellen von Webanwendungen verwendet.
Node.js ist eine beliebte JavaScript-Laufzeitumgebung, die es uns ermöglicht, serverseitige Anwendungen mit JavaScript zu schreiben. Die Effizienz und das robuste Ökosystem von Node.js machen es ideal für die Erstellung leistungsstarker APIs. Es gibt viele GraphQL-Bibliotheken in Node.js, die die Verwendung von GraphQL-APIs sehr einfach und effizient machen.
In diesem Artikel wird erläutert, wie Sie GraphQL zum Abfragen von Daten in Node.js verwenden. Wir werden eine einfache Anwendung verwenden, die auf Node.js und dem Express-Framework basiert, um Daten mithilfe von GraphQL abzufragen.
Schritt 1: Erstellen Sie eine einfache Express-Anwendung und konfigurieren Sie GraphQL
Zuerst müssen wir eine Node.js-Anwendung erstellen. Lassen Sie uns das Express-Framework verwenden, um unsere Anwendung zu erstellen. Stellen Sie vor dem Erstellen der Anwendung sicher, dass Node.js und npm auf Ihrem System installiert sind. Wir können überprüfen, ob Node.js installiert ist, indem wir den folgenden Befehl in das Terminal eingeben:
node -v
Wenn Sie Node.js erfolgreich installiert haben, sollte die installierte Versionsnummer angezeigt werden.
Als nächstes erstellen Sie ein neues Projektverzeichnis im Terminal und initialisieren npm:
mkdir nodejs-graphql-demo cd nodejs-graphql-demo npm init -y
Lassen Sie uns nun die erforderlichen Abhängigkeiten mit dem folgenden Befehl installieren:
npm install express graphql express-graphql
Bevor wir fortfahren, lassen Sie uns diese Abhängigkeiten im Detail verstehen.
Als nächstes erstellen wir eine neue Datei server.js im Home-Verzeichnis des Projekts und fügen den folgenden Inhalt hinzu:
const express = require('express'); const { graphqlHTTP } = require('express-graphql'); const { buildSchema } = require('graphql'); const app = express(); const schema = buildSchema(` type Query { message: String } `); const root = { message: () => 'Hello World!' }; app.use('/graphql', graphqlHTTP({ schema: schema, rootValue: root, graphiql: true })); const PORT = process.env.PORT || 5000; app.listen(PORT, () => console.log(`Server started on port ${PORT}`));
Im obigen Code importieren wir zunächst die Module Express, graphqlHTTP und buildSchema. Als Nächstes erstellen wir eine Express-Instanz und definieren ein einfaches Abfrageschema mithilfe der buildSchema-Funktion. Unser Abfragemuster enthält nur ein Abfragefeld namens „Nachricht“ und gibt eine Zeichenfolge zurück.
Als nächstes definieren wir ein JavaScript-Objekt namens root, das eine Nachrichtenfunktion enthält, die „Hello World!“ zurückgibt. In GraphQL wird dieses Objekt als Root-Resolver-Objekt bezeichnet. Wir definieren eine Middleware für GraphQL und verwenden die soeben erstellten Schema- und Root-Resolver-Objekte. Diese Middleware stellt einen GraphQL-Dienst auf dem an /graphql weitergeleiteten Pfad bereit, und die auf „true“ gesetzte graphiql-Option aktiviert die GraphiQL-Schnittstelle.
Abschließend starten wir die Anwendung mit der Listen-Methode der Express-Instanz und überwachen Port 5000.
Schritt 2: Testen Sie die GraphQL-Abfrage
Wir haben die GraphQL-Middleware erfolgreich konfiguriert und können nun unsere Abfragen testen. Verwenden wir dazu Postman. Zuerst müssen wir Postman installieren und starten. Starten Sie Postman, indem Sie im Terminal den folgenden Befehl eingeben:
postman
Jetzt erstellen wir eine neue POST-Anfrage und setzen die URL auf http://localhost:5000/graphql. Fügen Sie im Anfragetext die folgende Abfrage zum GraphQL-Abfrageeditor hinzu:
query { message }
Jetzt können wir die Anfrage senden und die Antwort anzeigen. Die Antwort sollte Folgendes enthalten:
{ "data": { "message": "Hello World!" } }
Wie Sie sehen können, haben wir die Antwort von der GraphQL-Abfrage erfolgreich erhalten. Erweitern wir unsere Abfrage um weitere Abfragefelder und -typen.
Schritt 3: Weitere Abfragefelder und -typen hinzufügen
Jetzt erweitern wir unser Abfragemuster um weitere Felder und Typen. Schauen wir uns das folgende Beispiel an:
const schema = buildSchema(` type Query { message: String number: Int person: Person } type Person { name: String age: Int address: Address } type Address { street: String city: String state: String country: String } `); const root = { message: () => 'Hello World!', number: () => 42, person: () => ({ name: 'John Doe', age: 30, address: { street: '123 Main St', city: 'Anytown', state: 'CA', country: 'USA' } }) };
Im obigen Code haben wir ein ganzzahliges Abfragefeld namens „Nummer“ und ein Abfragefeld namens „Person“ hinzugefügt, das ein Objekt vom Typ Person zurückgibt. Wir definieren auch die Typen Person und Adresse.
Im Root-Parser-Objekt definieren wir Funktionen, die den neuen Feldern und Typen entsprechen. Die Nachrichten- und Zahlenfelder geben jeweils Zeichenfolgen und Ganzzahlen zurück, während das Personenfeld ein Personenobjekt zurückgibt, dessen Felder und Werte von uns definiert werden.
Jetzt testen wir die neue Abfrage. Wir können die folgende Abfrage verwenden:
query { message number person { name age address { street city state country } } }
Die Antwort sollte Folgendes enthalten:
{ "data": { "message": "Hello World!", "number": 42, "person": { "name": "John Doe", "age": 30, "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "country": "USA" } } } }
Wie Sie sehen, haben wir die neuen Felder und Typen erfolgreich abgefragt. Sie können nach Bedarf weitere Felder und Typen hinzufügen, um mehr nützliche Daten in der API zurückzugeben.
Fazit
In diesem Artikel haben wir gelernt, wie man Daten mit GraphQL in Node.js abfragt. Wir haben eine einfache Anwendung basierend auf dem Express-Framework erstellt und Express-Middleware und das GraphQL-Modul verwendet, um Daten programmgesteuert abzufragen. Wir haben außerdem weitere Abfragefelder und -typen hinzugefügt, um unsere Abfragen zu verbessern. GraphQL ist ein sehr leistungsstarkes und nützliches Tool, das uns beim Aufbau effizienter und skalierbarer APIs hilft.
Das obige ist der detaillierte Inhalt vongraphql nodejs-Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!