Docs
Buscar⌘ K
  • Início
  • Sobre o The Graph
  • Redes Apoiadas
  • Contratos de Protocolo
  • Subgraphs
    • Substreams
      • Token API
        • Hypergraph
          • AI Suite
            • Indexação
              • Graph Horizon
                • Recursos
                  Subgraphs > Queries

                  5 minutos

                  Como Fazer Queries de um Aplicativo

                  Aprenda a solicitar um query do The Graph a partir do seu aplicativo.

                  Como Resgatar Pontos Finais da GraphQL

                  Durante o processo de programação, você receberá um ponto final da API da GraphQL em dois estágios diferentes: um para testar no Subgraph Studio, e outro para fazer queries à The Graph Network na produção.

                  Ponto Final do Subgraph Studio

                  Após implementar o seu subgraph ao Subgraph Studio, você receberá um ponto final parecido com isto:

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

                  Este ponto final é apenas para testes, e tem limite de taxa.

                  Ponto Final da The Graph Network

                  Após editar o seu subgraph à rede, você receberá um ponto final parecido com isto:

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

                  O ponto final é feito para uso ativo na rede, e permite o uso de várias bibliotecas de cliente da GraphQL para solicitar queries do subgraph e popular o seu aplicativo com dados indexados.

                  Como Usar Clientes GraphQL Populares

                  Graph Client

                  O The Graph fornece um cliente GraphQL próprio, graph-client, que apoia recursos únicos como:

                  • Gestão de Subgraph Entre Chains: Queries de múltiplos subgraphs numa única consulta
                  • Rastreamento Automático de Blocos⁠
                  • Paginação Automática⁠
                  • Resultado totalmente digitado

                  Observação: o graph-client também é integrado com clientes GraphQL populares como Apollo e URQL, compatíveis com todos os ambientes (React, Angular, Node.js, React Native); utilizar o graph-client proverá a melhor experiência para interagir com o The Graph.

                  Como Resgatar Dados com o Graph Client

                  Vamos ver como retirar dados de um subgraph com o graph-client:

                  Passo 1

                  Instale a CLI do The Graph Client no seu projeto:

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

                  Passo 2

                  Defina o seu query num arquivo .graphql (ou embutido no seu arquivo, .js ou .ts):

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

                  Passo 3

                  Depois, crie um arquivo de configuração (chamado .graphclientrc.yml) e aponte aos seus endpoints GraphQL oferecidos pelo The Graph, por exemplo:

                  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

                  Passo 4

                  Execute o seguinte comando na CLI do Graph Client para gerar códigos JavaScript digitados e prontos para uso:

                  1graphclient build

                  Passo 5

                  Atualize o seu arquivo .ts para usar os documentos digitados em GraphQL já gerados:

                  1import React, { useEffect } from 'react'2// ...3// Importamos tipos e documentos digitados da graphql do código gerado (`..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>Graph Client Example</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

                  Importante: graph-client é perfeitamente integrado com outros clientes GraphQL, como Apollo, URQL, ou React Query; mais exemplos no repositório oficial⁠. No entanto, se escolher outro cliente, lembre-se que não terá como usar o Manuseio de Subgraphs Cross-chain ou a Paginação Automática, que são recursos essenciais para consultar o The Graph.

                  Cliente Apollo

                  O Apollo⁠ é um cliente GraphQL comum em ecossistemas de front-end. Disponível para React, Angular, Vue, Ember, iOS, e Android.

                  É o cliente mais pesado, mas tem muitas funções para construir interfaces avançadas em cima da GraphQL:

                  • Tratamento de erros avançado
                  • Paginação
                  • Pré-resgate de dados
                  • Interface otimista
                  • Gestão de estado local

                  Como Resgatar Dados pelo Cliente Apollo

                  Vamos ver como retirar dados de um subgraph com o cliente Apollo:

                  Passo 1

                  Primeiro, instale o @apollo/client e o graphql:

                  1npm install @apollo/client graphql

                  Passo 2

                  Depois, solicite um query da API com o seguinte código:

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

                  Passo 3

                  Para usar variáveis, dá para passar um argumento variables ao query:

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

                  Visão Geral do URQL

                  O URQL⁠ está disponível nos ambientes: Node.js, React/Preact, Vue, e Svelte, com algumas funções mais avançadas:

                  • Sistema de cache flexível
                  • Design extensível (mais fácil adicionar novas capacidades em cima dele)
                  • Pacote leve (cerca de 5x mais leve que o Apollo)
                  • Apoio para envios de arquivo e modo offline

                  Como retirar dados com o URQL

                  Vamos ver como retirar dados de um subgraph com o URQL:

                  Passo 1

                  Instale urql e graphql:

                  1npm install urql graphql

                  Passo 2

                  Depois, solicite um query da API com o seguinte código:

                  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()
                  ⁠Editar no GitHub⁠

                  Etiqueta de QuerySistemas Distribuídos
                  Nesta página
                  • Como Resgatar Pontos Finais da GraphQL
                  • Ponto Final do Subgraph Studio
                  • Ponto Final da The Graph Network
                  • Como Usar Clientes GraphQL Populares
                  • Graph Client
                  • Como Resgatar Dados com o Graph Client
                  • Cliente Apollo
                  • Como Resgatar Dados pelo Cliente Apollo
                  • Visão Geral do URQL
                  • Como retirar dados com o URQL
                  The GraphStatusRede de TestesAtivos de MarcaFórumSegurançaPolítica de PrivacidadeAcordo de Serviço