Docs
La Recherche⌘ K
  • Accueil
  • À propos de The Graph
  • Réseaux pris en charge
  • Contrats du Protocole
  • Subgraphs
    • Substreams
      • Token API
        • AI Suite
          • Indexing
            • Resources
              Subgraphs > Querying

              5 minutes

              Interrogation à partir d'une application

              Apprenez à interroger The Graph à partir de votre application.

              Obtenir des endpoints GraphQL

              Au cours du processus de développement, vous recevrez un Endpoint de l’API GraphQL à deux étapes différentes : l’une pour les tests dans Subgraph Studio, et l’autre pour effectuer des requêtes sur The Graph Network en production.

              Endpoint Subgraph Studio

              Après avoir déployé votre subgraph dans Subgraph Studio, vous recevrez un endpoint qui ressemble à ceci :

              1https://api.studio.thegraph.com/query/<ID>/<SUBGRAPH_NAME>/<VERSION>

              Cet endpoint est destiné à des fins de test uniquement et son débit est limité.

              Endpoint de The Graph Network

              Après avoir publié votre subgraph sur le réseau, vous recevrez un endpoint qui ressemble à ceci : :

              1https://gateway.thegraph.com/api/<API_KEY>/subgraphs/id/<SUBGRAPH_ID>

              Cet endpoint à une utilisation active sur le réseau. Il vous permet d’utiliser diverses bibliothèques client GraphQL pour interroger le Subgraph et alimenter votre application en données indexées.

              Utilisation de clients GraphQL populaires

              Graph Client

              The Graph fournit son propre client GraphQL, graph-client, qui prend en charge des fonctionnalités uniques telles que :

              • Traitement des subgraphs multi-chaînes : Interrogation de plusieurs subgraphs en une seule requête
              • Suivi automatique des blocs⁠
              • Pagination automatique⁠
              • Résultat entièrement typé

              Remarque : graph-client est intégré à d’autres clients GraphQL populaires tels qu’Apollo et URQL, qui sont compatibles avec des environnements tels que React, Angular, Node.js et React Native. Par conséquent, l’utilisation de graph-client vous fournira une expérience améliorée pour travailler avec The Graph.

              Récupérer des données avec Graph Client

              Voyons comment récupérer les données d’un subgraph avec graph-client :

              Étape 1

              Installez The Graph Client CLI dans votre projet :

              1yarn add -D @graphprotocol/client-cli2# or, with NPM:3npm install --save-dev @graphprotocol/client-cli

              Étape 2

              Définissez votre requête dans un fichier .graphql (ou dans votre fichier .js ou .ts) :

              1query ExampleQuery {2  # celle-ci provient de compound-v23  markets(first: 7) {4    borrowRate5    cash6    collateralFactor7  }8  # celle-ci provient de uniswap-v29  pair(id: "0x00004ee988665cdda9a1080d5792cecd16dc1220") {10    id11    token0 {12      id13      symbol14      name15    }16    token1 {17      id18      symbol19      name20    }21  }22}

              Étape 3

              Créez un fichier de configuration (appelé .graphclientrc.yml) et pointez vers vos endpoints GraphQL fournis par The Graph, par exemple :

              1# .graphclientrc.yml2sources:3  - name: uniswapv24    handler:5      graphql:6        endpoint: https://gateway.thegraph.com/api/<API_KEY>/subgraphs/id/<SUBGRAPH_ID>7  - name: compoundv28    handler:9      graphql:10        endpoint: https://gateway.thegraph.com/api/<API_KEY>/subgraphs/id/<SUBGRAPH_ID>1112documents:13  - ./src/example-query.graphql

              Étape 4

              Exécutez la commande CLI suivante de The Graph Client pour générer un code JavaScript typé et prêt à l’emploi :

              1graphclient build

              Étape 5

              Mettez à jour votre fichier .ts pour utiliser les documents GraphQL typés générés :

              1import React, { useEffect } from 'react'2// ...3// nous importons les types et le document typed-graphql du code généré (`..graphclient/`)4import { ExampleQueryDocument, ExampleQueryQuery, execute } from '../.graphclient'56function App() {7  const [data, setData] = React.useState<ExampleQueryQuery>()89  useEffect(() => {10    execute(ExampleQueryDocument, {}).then((result) => {11      setData(result?.data)12    })13  }, [setData])14  return (15    <div className="App">16      <header className="App-header">17        <img src={logo} className="App-logo" alt="logo" />18        <p>Exemple de Graph Client</p>19        <fieldset>20          {data && (21            <form>22              <label>Data</label>23              <br />24              <textarea value={JSON.stringify(data, null, 2)} readOnly rows={25} />25            </form>26          )}27        </fieldset>28      </header>29    </div>30  )31}3233export default App

              Note importante: graph-client est parfaitement intégré avec d’autres clients GraphQL tels que Apollo client, URQL, ou React Query ; vous pouvez trouver des exemples dans le dépôt officiel⁠. Cependant, si vous choisissez d’aller avec un autre client, gardez à l’esprit que vous ne serez pas en mesure d’utiliser Cross-chain Subgraph Handling (La manipulation cross-chain des subgraphs) ou Automatic Pagination (La pagination automatique), qui sont des fonctionnalités essentielles pour interroger The Graph.

              Le client Apollo

              [Apollo client] (https://www.apollographql.com/docs/⁠) est un client GraphQL commun sur les écosystèmes front-end. Il est disponible pour React, Angular, Vue, Ember, iOS et Android.

              Bien qu’il s’agisse du client le plus lourd, il possède de nombreuses fonctionnalités permettant de construire des interfaces utilisateur avancées sur GraphQL :

              • Gestion avancée des erreurs
              • Pagination
              • Pré-récupération des données
              • UI optimiste
              • Gestion locale de l’État

              Récupérer des données avec Apollo Client

              Voyons comment récupérer les données d’un subgraph avec le client Apollo :

              Étape 1

              Installez @apollo/client et graphql :

              1npm install @apollo/client graphql

              Étape 2

              Interrogez l’API avec le code suivant :

              1import { ApolloClient, InMemoryCache, gql } from '@apollo/client'23const APIURL = 'https://gateway.thegraph.com/api/<API_KEY>/subgraphs/id/<SUBGRAPH_ID>'45const tokensQuery = `6  query {7    tokens {8      id9      tokenID10      contentURI11      metadataURI12    }13  }14`1516const client = new ApolloClient({17  uri: APIURL,18  cache: new InMemoryCache(),19})2021client22  .query({23    query: gql(tokensQuery),24  })25  .then((data) => console.log('Subgraph data: ', data))26  .catch((err) => {27    console.log('Error fetching data: ', err)28  })

              Étape 3

              Pour utiliser des variables, vous pouvez passer un argument variables à la requête :

              1const tokensQuery = `2  query($first: Int, $orderBy: BigInt, $orderDirection: String) {3    tokens(4      first: $first, orderBy: $orderBy, orderDirection: $orderDirection5    ) {6      id7      tokenID8      contentURI9      metadataURI10    }11  }12`1314client15  .query({16    query: gql(tokensQuery),17    variables: {18      first: 10,19      orderBy: 'createdAtTimestamp',20      orderDirection: 'desc',21    },22  })23  .then((data) => console.log('Subgraph data: ', data))24  .catch((err) => {25    console.log('Error fetching data: ', err)26  })

              Vue d’ensemble d’URQL

              [URQL] (https://formidable.com/open-source/urql/⁠) est disponible dans les environnements Node.js, React/Preact, Vue et Svelte, avec des fonctionnalités plus avancées :

              • Système de cache flexible
              • Conception extensible (facilitant l’ajout de nouvelles fonctionnalités par-dessus)
              • Offre légère (~ 5 fois plus légère que Apollo Client)
              • Prise en charge des téléchargements de fichiers et du mode hors ligne

              Récupérer des données avec URQL

              Voyons comment récupérer des données d’un subgraph avec URQL :

              Étape 1

              Installez urql et graphql :

              1npm install urql graphql

              Étape 2

              Interrogez l’API avec le code suivant :

              1import { createClient } from 'urql'23const APIURL = 'https://gateway.thegraph.com/api/<API_KEY>/subgraphs/id/<SUBGRAPH_ID>'45const tokensQuery = `6  query {7    tokens {8      id9      tokenID10      contentURI11      metadataURI12    }13  }14`1516const client = createClient({17  url: APIURL,18})1920const data = await client.query(tokensQuery).toPromise()
              ⁠Edit on GitHub⁠

              Bonnes pratiques d'interrogationSystèmes distribués
              On this page
              • Obtenir des endpoints GraphQL
              • Endpoint Subgraph Studio
              • Endpoint de The Graph Network
              • Utilisation de clients GraphQL populaires
              • Graph Client
              • Récupérer des données avec Graph Client
              • Le client Apollo
              • Récupérer des données avec Apollo Client
              • Vue d’ensemble d’URQL
              • Récupérer des données avec URQL
              The GraphStatusTestnetActifs de la MarqueForumSécuritéPolitique de confidentialitéConditions d'utilisation