从10月8日至10日加入我们,在纽约市了解关于GraphQL联盟和API平台工程的最新技巧、趋势和新闻。加入我们,参加2024年纽约市的GraphQL峰会
文档
免费开始

模式链

有助于模拟和服务器端渲染


概述

模式链提供了GraphQL 执行环境,该环境允许您在提供的模式上执行 对于实际应用来说太重了。

要统一您的状态管理以及与客户端GraphQL 操作,请参阅本地状态管理功能。它集成与Apollo Client缓存,并且更为轻量。

安装

npm install @apollo/client --save

使用方法

服务器端渲染

当在同一服务器上执行SSR时,您可以使用这个库来避免进行网络调用。

import { ApolloClient, InMemoryCache } from '@apollo/client';
import { SchemaLink } from '@apollo/client/link/schema';
import schema from './path/to/your/schema';
const graphqlClient = new ApolloClient({
cache: new InMemoryCache(),
ssrMode: true,
link: new SchemaLink({ schema })
});

模拟

有关模拟的更多信息,请参阅graphql-tools 文档

import { ApolloClient, InMemoryCache } from '@apollo/client';
import { SchemaLink } from '@apollo/client/link/schema';
import { makeExecutableSchema, addMockFunctionsToSchema } from 'graphql-tools';
const typeDefs = `
Query {
...
}
`;
const mocks = {
Query: () => ...,
Mutation: () => ...
};
const schema = makeExecutableSchema({ typeDefs });
const schemaWithMocks = addMockFunctionsToSchema({
schema,
mocks
});
const apolloCache = new InMemoryCache(window.__APOLLO_STATE__);
const graphqlClient = new ApolloClient({
cache: apolloCache,
link: new SchemaLink({ schema: schemaWithMocks })
});

选项

SchemaLink构造函数可以接受一个对象,该对象具有以下属性:

选项描述
schema一个可执行的 GraphQL 模式
rootValue将传递给解析器的根值(即 rootQuery 的第一个参数)
context将传递给解析器的一个对象,遵循 GraphQL 规范或一个接受操作并返回解析器上下文功能的函数。解析器上下文可能包含操作的所有数据获取连接器。
validate在执行之前对传入查询与本地模式进行验证,就像非本地 GraphQL 端点通常所做的那样,在 result.errors 中返回验证错误。
上一个
重试
下一个
订阅(新协议)
评分文章评分在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,即Apollo GraphQL。

隐私政策

公司