跳至主要内容
版本:v18.0.0

网络层

为了知道如何访问您的 GraphQL 服务器,Relay 要求开发人员在创建 Relay 环境实例时提供一个实现 INetwork 接口的对象。环境使用此网络层来执行查询、变异和(如果您的服务器支持)订阅。这使开发人员能够使用最适合其应用程序的传输(HTTP、WebSockets 等)和身份验证,将环境与每个应用程序网络配置的细节分离。

目前,创建网络层的最佳方式是使用 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 为假时启用)和上传变异的表单数据(uploadables 参数)。

缓存

Relay 存储会缓存当前保留的查询中的数据。请参阅指南中有关 重用缓存数据 的部分。


此页面是否有用?

通过以下方式帮助我们改进网站: 回答几个简单的问题.