客户端架构
通过客户端特定字段扩展您的架构
您可以选择提供 客户端架构 以定义 Apollo 客户端.本地的类型和字段。您可以定义全新的类型,或者通过新的 字段 扩展您服务器的架构。
与任何 GraphQL 架构一样,您的客户端架构必须使用 架构定义语言 编写。
客户端架构不用于在服务器上(当使用 graphql-js
模块进行架构验证时,会大大增加您的包大小)。相反,您的客户端架构用于在 Apollo 客户端 Devtools 中进行 graphql-js
模块进行架构验证时,会大大增加您的包大小)。相反,您的客户端架构用于在 Apollo 客户端 Devtools 中进行
设置
以下演示了如何定义客户端架构并将其提供给 ApolloClient
构造函数:
import { ApolloClient, InMemoryCache, gql } from '@apollo/client';const typeDefs = gql`extend type Query {isLoggedIn: Boolean!cartItems: [Launch]!}extend type Launch {isInCart: Boolean!}extend type Mutation {addOrRemoveFromCart(id: ID!): [Launch]}`;const client = new ApolloClient({cache: new InMemoryCache(),uri: 'https://127.0.0.1:4000/graphql',typeDefs,});
如果您打开Apollo Client Devtools并点击GraphiQL
标签页,您可以在“文档”部分探索您的客户端模式。这个例子不包括远程模式,但如果包括了,您将能够看到您的本地查询和变更,与您的远程查询并列显示。