GraphQL简介
GraphQL主要是一套针对图状数据查询语言,推荐先读读知乎——什么是 GraphQL?
基本类型
先看看提供的基本类型(标量类型)
GraphQL 自带一组默认标量类型:
- Int:有符号 32 位整数。
- Float:有符号双精度浮点值。
- String:UTF‐8 字符序列。
- Boolean:true 或者 false。
- ID:ID 标量类型表示一个唯一标识符,通常用以重新获取对象或者作为缓存中的键。ID 类型使用和 String 一样的方式序列化;然而将其定义为 ID 意味着并不需要人类可读型。
自定义基本类型(Date是一个type,需要自行实现)
scalar Date
枚举定义
通过enum关键字定义枚举,如
enum Episode {
NEWHOPE
EMPIRE
JEDI
}
类定义
通过使用type进行类型定义,如
type Character {
str: String
}
GraphQL中,成员的表示方式是 成员名称:类型名称
memberName : typeName
通过在类型名称后加上!,代表该成员不能为空,比如如下定义了一个不能为空的数组成员
type Company{
human: [String]!
}
在数组的基类型右边加上!代表数组元素不能为空,如下是一个不能为空的数组,且数组元素不能为空
type Company{
human: [String!]!
}
接口类型
通过不使用type而使用interface关键字定义一个接口,type可以去实现接口,这要求其实现其所有成员,所以这里的接口更像一些规则的集合而非属性的抽象(需要具备接口的成员),实现多个接口使用&分隔,如
<