GraphQL

PHPz
PHPzOriginal
2024-08-10 16:38:03689Durchsuche

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 einzelnen 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 auf /users und dann auf /users/{id}/posts klicken.
  • 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 (Überabruf) oder erfordert zusätzliche Anfragen, um mehr Daten abzurufen (Unterabruf).
  • GraphQL: Kunden geben genau an, welche Daten sie benötigen, wodurch sowohl übermäßiges als auch unzureichendes Abrufen vermieden wird.

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
    }
  }
}

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

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}`);
});

3. Führen Sie den Server aus:

node index.js

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.

Beginnen 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!

Stellungnahme:
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