メインコンテンツへスキップ
バージョン: v18.0.0

ネットワーク層

GraphQLサーバーへのアクセス方法を知るために、リレーでは開発者がRelay Environmentのインスタンスを作成する際にINetworkインターフェースを実装するオブジェクトを提供する必要があります。環境は、このネットワーク層を使用して、クエリ、ミューテーション、および(サーバーがサポートしている場合)サブスクリプションを実行します。これにより、開発者は自分のアプリケーションに最適なトランスポート(HTTP、WebSocketなど)と認証を使用できるようになり、環境を各アプリケーションのネットワーク構成の特定の事項から切り離すことができます。

現時点では、relay-runtimeパッケージのヘルパーを介してネットワーク層を作成するのが最も簡単な方法です

import {
Environment,
Network,
RecordSource,
Store,
} from 'relay-runtime';

// Define a function that fetches the results of an operation (query/mutation/etc)
// and returns its results as a Promise:
function fetchQuery(
operation,
variables,
cacheConfig,
uploadables,
) {
return fetch('/graphql', {
method: 'POST',
headers: {
// Add authentication and other headers here
'content-type': 'application/json'
},
body: JSON.stringify({
query: operation.text, // GraphQL text from input
variables,
}),
}).then(response => {
return response.json();
});
}

// Create a network layer from the fetch function
const network = Network.create(fetchQuery);
const store = new Store(new RecordSource())

const environment = new Environment({
network,
store
// ... other options
});

export default environment;

これは、作業を始めるための基本的な例です。この例は、リクエスト/レスポンスキャッシュ(たとえばcacheConfig.forceがfalseの場合に有効化されます)や、ミューテーションのフォームデータのアップロード(uploadablesパラメータ)などの追加機能で拡張できます。

キャッシュ

リレーストアは、現在保持されているクエリのデータをキャッシュします。ガイドツアーのキャッシュされたデータの再利用に関するセクションを参照してください。


このページは役に立ちましたか?

いくつかの簡単な質問に 答えて、サイトをさらに向上させるのに協力してください.