グラフのサブグラフからデータへのアクセス方法
5736 ワード
このグラフでは、グラフ上に作成されたサブグラフやAPIからデータをアクセスする方法と、反応フックを使用して部分グラフの結果を結合する方法について概説します.
The Graphはネットワークを問い合わせるためのインデックスプロトコルです.その中心的な特徴の一つは、誰もがスマート契約データのAPIを構築するためにグラフを使用できることです.
MintGateは、創造者とコミュニティがゲートウェイビデオとウェブコンテンツをNFFTまたは社会的トークンを使ってセットアップするのを許すプラットホームです.Unlock Protocolは、誰でもメンバーシップ、時間ベースのNFFTをつくるのを許すオープンソース、ブロックチェーンベースのプロトコルです.
mintgateおよびロックを解除するプロトコルの統合は、クリエータとコミュニティがエンドファンに一定時間の間、コンテンツにアクセスするためにNFTを購入することを要求する.私たちのUIでは、ユーザーがゲートウェイのコンテンツをnftスマート契約を使用してロックを解除するプロトコルを作成設定を検出する必要があります.
我々は、すべての“ロック”またはプロトコルを使用して作成されたNFTコレクションの契約アドレスを取得するグラフ上のロック解除プロトコルのサブグラフを利用しました.あなたは、彼らのdocsでプロトコルのサブグラフ情報の錠を開けるすべてを見ることができます.
私たちは新しいJavaScriptファイルを作成し、constで242479142フックを反応させました.
サブグラフを解析し,フェッチコールの構造を概説した.
以下はグラフのロック解除プロトコルmainnetサブグラフへのリンクです.
部分グラフの注意フェッチAPI URLは「クエリー(HTTP)」の下のAPIリンクです. https://thegraph.com/legacy-explorer/subgraph/unlock-protocol/unlockサブグラフはポストAPIです. グラフの遊び場では、例のクエリボックスの下に、リクエスト本文の例があります.
グラフの遊び場では、スキーマ内でで、APIでインデックスを作成することができます.
サブグラフを解析したので、我々はフェッチコールを構築した.
私たちのために、我々はロックまたはNFT収集名を得たかったので、我々はこの要求体を使用しました:
paramsを設定した後、APIの結果を返します.
私たちは、これをparstを含むconstの最後に加えました.
あなたは、constがフェッチコールを含んだことを返しました.
さらに、ユーザーがEthereum mainnet以外の他のチェーンのロックを解除しているプロトコルロックまたはスマート契約を使用している内容をゲートにしたかどうかチェックする方法を必要としました.
私たちは とxDaiでサブグラフを利用する必要がありました.
約束の使用すべての応答を取得し、配列で返されます.最終結果はこちら
グラフは何ですか。
The Graphはネットワークを問い合わせるためのインデックスプロトコルです.その中心的な特徴の一つは、誰もがスマート契約データのAPIを構築するためにグラフを使用できることです.
ユースケース
MintGateは、創造者とコミュニティがゲートウェイビデオとウェブコンテンツをNFFTまたは社会的トークンを使ってセットアップするのを許すプラットホームです.Unlock Protocolは、誰でもメンバーシップ、時間ベースのNFFTをつくるのを許すオープンソース、ブロックチェーンベースのプロトコルです.
mintgateおよびロックを解除するプロトコルの統合は、クリエータとコミュニティがエンドファンに一定時間の間、コンテンツにアクセスするためにNFTを購入することを要求する.私たちのUIでは、ユーザーがゲートウェイのコンテンツをnftスマート契約を使用してロックを解除するプロトコルを作成設定を検出する必要があります.
開発
グラフ上のロック解除プロトコルの部分グラフの使用
我々は、すべての“ロック”またはプロトコルを使用して作成されたNFTコレクションの契約アドレスを取得するグラフ上のロック解除プロトコルのサブグラフを利用しました.あなたは、彼らのdocsでプロトコルのサブグラフ情報の錠を開けるすべてを見ることができます.
ステップワン
私たちは新しいJavaScriptファイルを作成し、constで242479142フックを反応させました.
import { useAsync } from 'react-use';
const useUnlock = () => {
const unlock = useAsync(async () => {
}
}
export { useUnlock };
ステップ2
サブグラフを解析し,フェッチコールの構造を概説した.
以下はグラフのロック解除プロトコルmainnetサブグラフへのリンクです.
部分グラフの注意
グラフの遊び場では、スキーマ内で
ステップ3
サブグラフを解析したので、我々はフェッチコールを構築した.
私たちのために、我々はロックまたはNFT収集名を得たかったので、我々はこの要求体を使用しました:
query {
locks {
address
name
}
}
以下のようになります.const result = await fetch(`https://api.thegraph.com/subgraphs/name/unlock-protocol/unlock`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
query {
locks {
address
name
}
}`
}),
}),
ステップフォー
paramsを設定した後、APIの結果を返します.
私たちは、これをparstを含むconstの最後に加えました.
then((res) => res.json());
return result;
ラッピング
あなたは、constがフェッチコールを含んだことを返しました.
}, []);
return [unlock];
}
そして、constは全体の反応フックのまわりでラップを輸出しました.export { useUnlock };
私たちの最終的な結果は、このようなものに見えました.import { useAsync } from 'react-use';
const useUnlockMainnet = () => {
const unlockMainnet = useAsync(async () => {
const result = await fetch(`https://api.thegraph.com/subgraphs/name/unlock-protocol/unlock`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
query {
locks {
address
}
}
}`
}),
}).then((res) => res.json());
return result;
}, []);
return [unlockMainnet];
}
export { useUnlockMainnet };
ボーナスポイント:複数のサブグラフ結果を呼ぶ方法
さらに、ユーザーがEthereum mainnet以外の他のチェーンのロックを解除しているプロトコルロックまたはスマート契約を使用している内容をゲートにしたかどうかチェックする方法を必要としました.
私たちは とxDaiでサブグラフを利用する必要がありました.
約束の使用すべての応答を取得し、配列で返されます.最終結果はこちら
import { useAsync } from 'react-use';
const useUnlock = () => {
const unlock = useAsync(async () => {
const result = await Promise.all([await fetch(`https://api.thegraph.com/subgraphs/name/unlock-protocol/unlock`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
query {
locks {
address
name
}
}`
}),
}),
await fetch(`https://api.thegraph.com/subgraphs/name/unlock-protocol/xdai
`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
query {
locks {
address
name
}
}`
}),
}),
await fetch(`https://api.thegraph.com/subgraphs/name/unlock-protocol/polygon
`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
query {
locks {
address
name
}
}`
}),
})]);
const data = await Promise.all(result.map(res => res.json()))
return data;
}, []);
return [unlock];
}
export { useUnlock };
あなたはロックを解除するロックを作成し、トークンゲートのコンテンツをmintgateの今日を設定しようとすることができます!Reference
この問題について(グラフのサブグラフからデータへのアクセス方法), 我々は、より多くの情報をここで見つけました https://dev.to/jkim_tran/how-to-access-data-from-a-subgraph-on-the-graph-dk3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol