Docs
Arama⌘ K
  • Ana sayfa
  • Graph Hakkında
  • Desteklenen Ağlar
  • Protocol Contracts
  • Subgraph'ler
    • Substream'ler
      • Token API
        • Hypergraph
          • 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