编写schema
这里预计六分钟
GraphQL schema是任何GraphQL的核心,描述了客户端连接到这里的可用字段。
核心代码块里有个叫’type‘ 的,他包含以下功能:
创建types之间的关系(e.g. between a
Book
and anAuthor
)。定义客户端可能执行的操作,类似获取了什么数据 (query) 和 更新了什么数据 (mutating)。
如果需要,自己来解释客户端需要的功能 (via introspection).
到最后,我们希望我们解释清楚里面的规则。
Schema 定义
为了更好地理解GraphQL的功能, GraphQL 用了一个比较容易理解的语法“SDL”. SDL 用来表示模式里可用的类型以及这些如何关联的。
看起来SDL和JavaScript比较相似,所以说GraphQL-specific 可以存为string。现在我们专注于解释SDL的用法。后面我们再来进入JavaScript的使用案例。
这个案例用SDL来定义 books 和authors:
这里重要的是定义数据的关系和样式。不是数据来源于哪或者说哪里存储的-只是将来外面输出的样式。
通过在schema的里面来定义这些逻辑,我进可以让client看到我们提供了什么数据。
GraphQL客户端受益于GraphQL服务操作的精确性,特别是当和传统的rest方法比,这样可以减少服务器的请求。
Scalar 类型
Scalar 类型最终会返回具体的数据。默认的GraphQL类型提供以下信息:
Int
: 32位Float
: 浮点型String
: 字符串Boolean
: 布尔值ID
(serialized asString
): 唯一标志符,当表示为string的时候,人类不可读(原文是not intended to be human‐readable)
这些类型包含了大多数使用场景,如果有特殊场景可以使用自定义的类型。
对象类型
The object type is the most common type used in a schema and represents a group of fields. Each field inside of an object type maps to another type, allowing nested types and circular references.
。。。。。
Last updated