Docs
Arama⌘ K
  • Ana sayfa
  • Graph Hakkında
  • Desteklenen Ağlar
  • Protocol Contracts
  • Subgraph'ler
    • Substream'ler
      • Token API
        • AI Suite
          • Endeksleme
            • Kaynaklar
              Subgraph'ler > Sorgulama

              4 dakika

              Bir Uygulamadan Sorgu Yapma

              Uygulamanızdan The Graph’e nasıl sorgu yapacağınızı öğrenin.

              GraphQL Uç Noktalarını Alma

              Geliştirme süreci boyunca iki farklı aşamada birer GraphQL API’si uç noktası alırsınız: biri Subgraph Studio’da test etmek için, diğeri ise üretim ortamında The Graph Ağı’na sorgular göndermek içindir.

              Subgraph Studio Uç Noktası

              Subgraph Studio ortamına Subgraph’inizi dağıttıktan sonra, aşağıdakine benzer bir uç nokta alırsınız:

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

              Bu uç nokta yalnızca test amaçlıdır ve istek sayısı sınırlandırılmıştır.

              The Graph Ağı Uç Noktası

              Subgraph’inizi ağa yayımladıktan sonra, aşağıdakine benzer bir uç nokta alırsınız:

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

              Bu uç nokta, ağ üzerinde aktif kullanım için tasarlanmıştır. Çeşitli GraphQL istemci kütüphanelerini kullanarak Subgraph’e sorgu göndermenize ve uygulamanızı endekslenmiş verilerle beslemenize olanak tanır.

              Popüler GraphQL İstemcilerini Kullanma

              Graph İstemcisi

              The Graph, kendisine ait bir GraphQL istemcisi olan graph-client’i sunar ve bu istemci aşağıdaki gibi rakipsiz özellikleri destekler:

              • Zincirler arası Subgraph İşleme: Tek bir sorguda birden fazla Subgraph’ten veri sorgulama
              • Otomatik Blok Takibi⁠
              • Otomatik Sayfalama⁠
              • Tamamen yazılmış sonuç

              Not: graph-client, Apollo ve URQL gibi diğer popüler GraphQL istemcileriyle entegredir ve React, Angular, Node.js ile React Native gibi ortamlarla uyumludur. Bu nedenle, graph-client kullanmak, The Graph ile çalışırken size geliştirilmiş bir deneyim sunar.

              Graph Client ile Veri Çekme

              graph-client ile bir Subgraph’ten nasıl veri çekebileceğimize bakalım:

              1. Adım

              Projenizde The Graph Client CLI’yi kurun:

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

              2. Adım

              Sorgunuzu bir .graphql dosyasında tanımlayın (veya doğrudan .js ya da .ts dosyanıza satır içi olarak ekleyin):

              1query ExampleQuery {2  # burası compound-v2'den geliyor3  markets(first: 7) {4    borrowRate5    cash6    collateralFactor7  }8  # burası uniswap-v2'den geliyor9  pair(id: "0x00004ee988665cdda9a1080d5792cecd16dc1220") {10    id11    token0 {12      id13      symbol14      name15    }16    token1 {17      id18      symbol19      name20    }21  }22}

              3. Adım

              Bir yapılandırma dosyası oluşturun (.graphclientrc.yml adında) ve The Graph tarafından sağlanan GraphQL uç noktalarına işaret edin. Örneğin:

              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

              4. Adım

              Halihazırda yazılmış ve kullanıma hazır JavaScript kodu üretmek için aşağıdaki The Graph Client CLI komutunu çalıştırın:

              1graphclient build

              5. Adım

              Oluşturulan tip tanımlı GraphQL dökümanlarını kullanmak için .ts dosyanızı güncelleyin:

              1import React, { useEffect } from 'react'2// ...3// oluşturulan koddan (`..graphclient/`) tipleri ve tip tanımlı graphql dökümanını içe aktarıyoruz4import { 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

              Önemli Not: graph-client, Apollo Client, URQL veya React Query gibi diğer GraphQL istemcileriyle tamamen entegredir; resmi depoda örneklere ulaşabilirsiniz⁠. Ancak farklı bir istemci kullanmayı tercih ederseniz, The Graph ile sorgu yaparken temel özelliklerden olan Zincirler Arası Subgraph İşleme ve Otomatik Sayfalama fonksiyonlarını kullanamayacağınızı unutmayın.

              Apollo Client

              Apollo Client⁠, önyüz ekosistemlerinde yaygın olarak kullanılan bir GraphQL istemcisidir. React, Angular, Vue, Ember, iOS ve Android gibi platformlarda kullanılabilir.

              En ağır istemci olmasına rağmen, GraphQL üzerine gelişmiş bir kullanıcı arayüzü oluşturmak için birçok özelliğe sahiptir:

              • Gelişmiş hata yönetimi
              • Sayfalandırma
              • Veriyi ön belleğe alma (prefetching)
              • Optimist kullanıcı arayüzü (UI)
              • Yerel durum yönetimi

              Apollo Client ile Veri Getirme

              Apollo client ile bir Subgraph’ten nasıl veri çekebileceğimize bakalım:

              1. Adım

              @apollo/client ve graphqli yükleyin:

              1npm install @apollo/client graphql

              2. Adım

              Aşağıdaki kod ile API’ye sorgu gönderin:

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

              3. Adım

              Değişken kullanmak için, sorguya bir variables argümanı geçebilirsiniz:

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

              URQL’e Genel Bakış

              URQL⁠, Node.js, React/Preact, Vue ve Svelte ortamlarında kullanılabilir ve bazı gelişmiş özellikler sunar:

              • Esnek önbellek sistemi
              • Genişletilebilir tasarım (üzerine yeni özellikler eklemeyi kolaylaştırır)
              • Hafif paket yapısı (Apollo Client’tan yaklaşık 5 kat daha hafif)
              • Dosya yükleme ve çevrimdışı mod desteği

              URQL ile veri getirme

              URQL ile bir Subgraph’ten nasıl veri çekebileceğimize bakalım:

              1. Adım

              urql and graphqli yükleyin:

              1npm install urql graphql

              2. Adım

              Aşağıdaki kod ile API’ye sorgu gönderin:

              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()
              ⁠GitHub'da Düzenle⁠

              Sorgulama - Örnek UygulamalarDağıtık Sistemler
              Bu sayfada
              • GraphQL Uç Noktalarını Alma
              • Subgraph Studio Uç Noktası
              • The Graph Ağı Uç Noktası
              • Popüler GraphQL İstemcilerini Kullanma
              • Graph İstemcisi
              • Graph Client ile Veri Çekme
              • Apollo Client
              • Apollo Client ile Veri Getirme
              • URQL’e Genel Bakış
              • URQL ile veri getirme
              The GraphStatusTestnetBrand AssetsForumSecurityPrivacy PolicyTerms of Service