GraphQL

PHPz
Freigeben: 2024-08-10 16:38:03
Original
562 Leute haben es durchsucht

GraphQL

Was ist GraphQL?

GraphQL ist eine leistungsstarke Abfragesprache für Ihre API und eine Laufzeit zum Ausführen dieser Abfragen mit Ihren Daten. GraphQL wurde 2012 von Facebook entwickelt und 2015 als Open-Source-Projekt veröffentlicht und ermöglicht es Kunden, genau die Daten anzufordern, die sie benötigen – nicht mehr und nicht weniger.

Hauptmerkmale:

  • Einzelner Endpunkt: Im Gegensatz zu REST, das normalerweise mehrere Endpunkte verwendet, verwendet GraphQL einen einzigen Endpunkt für alle Anfragen.
  • Flexible Abfragen: Kunden können in einer einzigen Abfrage nur die spezifischen Daten anfordern, die sie benötigen.
  • Starke Typisierung: Das Schema definiert die Typen und Beziehungen in der API und gewährleistet so eine robuste Datenvalidierung und Selbstbeobachtung.

Wie sich GraphQL von REST unterscheidet

1. Datenabruf:

  • REST: Erfordert mehrere Endpunkte, um zugehörige Daten abzurufen. Beispielsweise müssen Sie möglicherweise /users und dann /users/{id}/posts.
  • drücken
  • GraphQL: Ermöglicht das Abrufen aller erforderlichen Daten in einer einzigen Abfrage. Sie können Benutzerdetails und ihre Beiträge in einer Anfrage erhalten.

2. Über- und Unterabruf:

  • REST: Gibt oft mehr Daten zurück als benötigt (Over-Fetching) oder erfordert zusätzliche Anfragen, um mehr Daten zu erhalten (Under-Fetching).
  • GraphQL: Kunden geben genau an, welche Daten sie benötigen, wodurch sowohl Über- als auch Unterabruf vermieden werden.

3. Versionierung:

  • REST: API-Versionen müssen möglicherweise aktualisiert werden (z. B. /v1/users auf /v2/users).
  • GraphQL: Entwickelt sich ohne Versionierung. Neue Felder und Typen können hinzugefügt werden, ohne dass bestehende Abfragen unterbrochen werden.

Einfaches GraphQL-Abfragebeispiel

So könnten Sie eine GraphQL-Abfrage schreiben, um Benutzerinformationen abzurufen:

query { user(id: "1") { name email posts { title content } } }
Nach dem Login kopieren

In dieser Abfrage:

  • user(id: „1“) gibt an, dass ein Benutzer mit der ID 1.
  • abgerufen wird
  • Die verschachtelten Felder Name, E-Mail und Beiträge werden angefordert.
  • Beiträge enthalten die Unterfelder Titel und Inhalt, was eine verschachtelte Datenstruktur ermöglicht.

Einrichten eines einfachen GraphQL-Servers

Um mit GraphQL zu beginnen, richten wir einen Basisserver mit Node.js und Apollo Server ein.

1. Abhängigkeiten installieren:

npm install apollo-server graphql
Nach dem Login kopieren

2. Erstellen Sie einen Basisserver:

Erstellen Sie eine Datei mit dem Namen index.js und fügen Sie den folgenden Code hinzu:

const { ApolloServer, gql } = require('apollo-server'); // Define your type definitions const typeDefs = gql` type Post { title: String content: String } type User { name: String email: String posts: [Post] } type Query { user(id: String!): User } `; // Define your resolvers const resolvers = { Query: { user: (_, { id }) => ({ name: "John Doe", email: "john.doe@example.com", posts: [ { title: "GraphQL Basics", content: "Learning GraphQL is fun!" } ] }), }, }; // Create an Apollo Server instance const server = new ApolloServer({ typeDefs, resolvers }); // Start the server server.listen().then(({ url }) => { console.log(`? Server ready at ${url}`); });
Nach dem Login kopieren

3. Führen Sie den Server aus:

node index.js
Nach dem Login kopieren

Ihr Server wird jetzt ausgeführt und Sie können ihn mit GraphiQL (verfügbar unter http://localhost:4000) oder einem beliebigen GraphQL-Client testen.

Warum GraphQL verwenden?

  • Effizientes Laden von Daten: Fordern Sie genau das an, was Sie benötigen, und reduzieren Sie unnötige Datenübertragungen.
  • Schema- und Typsicherheit: Datenstruktur erzwingen und Daten effizient validieren.
  • Entwicklererfahrung: Tools wie GraphiQL und Apollo Client steigern die Produktivität mit Funktionen wie automatischer Vervollständigung und Dokumentation.

Starten Sie noch heute mit GraphQL!

Durch die Verwendung von GraphQL können Sie effizientere, flexiblere und skalierbarere APIs erstellen. Seien Sie gespannt auf die nächste Woche, in der wir tiefer in fortgeschrittene GraphQL-Themen wie Schemadesign und Mutationen eintauchen werden.

Das obige ist der detaillierte Inhalt vonGraphQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!