graphql 指南

17天前 阅读 52 评论 0 原创 文章

ApolloServer 的配置项

typeDefs - GraphQL 代码。
resolvers - 解析器中定义的类型与解析行为。
context - 当前请求的上下文。
rootValue - 创建传递给 graphql 执行程序的根值。
mocks - 是否开启模拟数据。
mockEntireSchema - 控制现有的解析器是否被模拟数据覆盖。
schemaDirectives - 引用 typeDefs。
engine - 代理密钥。
subscriptions - 定义订阅路径的字符串或定义订阅服务器的对象。
schema - 它将覆盖 typeDefs、resolvers。
formatError - 全局的错误处理。
tracing - 将跟踪或 cacheControl 元数据添加到 GraphQL 响应中。
validationRules - 架构验证规则。
debug - 是否开启 debug 模式。
playground - 是否开启 playground 调试器。
introspection - 启用和禁用模式内省。默认情况下生产环境禁用。
persistedQueries - 用于存储散列和查询字符串之间的映射。
cors - 是否支持跨域请求。

标量类型(Scala)

标量类型是不能包含子字段,主要有如下类型:

Int: 有符号的32位整型
Float: 有符号的双精度浮点型
String: UTF‐8字符序列
Boolean: 布尔型
ID: 常用于获取数据的唯一标志,或缓存的键值,它也会被序列化为String,但可读性差。
以上的类型是GraphQL规范的基本类型,每个规范的实现也可以有自定以标量,如 scala Date ,但它必须能够序列和反序列化,至于如何定于取决于具体的规范实现。

枚举(Enum)

枚举类型是标量类型的变体,不仅适用于可验证性,还提高了维护性,它同样被序列化为String。定义形如

type User{
  name: String
  sex: String
  intro: String
}

以上定义了一个User对象,包含name(名字)、sex(性别)、intro(介绍)属性字段,而这些属性字段都是标量String类型,当然属性也可以是对象类型。

集合(List)

GraphQL规范中的集合只有List一种,它是有序的用 [] 表示,如

type Query {
  user(id:Int!):User
}
type User{
  name: String!
  sex: String
  intro: String
  skills: [String]!
}
发表评论 已发布评论 0 《点我查看评论规范》
暂无数据