GraphQL入门之Schema和类型规范
GraphQL的Schema 和类型规范
Schema 是用于定义数据结构的,比如说,User对象中有哪些属性,对象与对象之间是什么关系等。
参考官网文档:http://graphql.cn/learn/schema/
Schema定义结构
schema { #定义查询query: UserQuery
}
type UserQuery { #定义查询的类型user(id:ID) : User #指定对象以及参数类型
}
type User { #定义对象id:ID! # !表示该属性是非空项name:Stringage:Int
}
标量类型(Scalar Types)
GraphQL规范中,默认定义了5种类型:
Int :有符号 32 位整数。
Float :有符号双精度浮点值。
String :UTF‐8 字符序列。
Boolean : true 或者 false 。
ID :ID 标量类型表示一个唯一标识符,通常用以重新获取对象或者作为缓存中的键。
规范中定义的这5种类型,显然是不能满足需求的,所以在各种语言实现中,都有对类型进行了扩充,也就是GraphQL支持自定义类型,比如在graphql-java实现中增加了:Long、Byte等。
枚举类型
枚举类型是一种特殊的标量,它限制在一个特殊的可选值集合内。
enum Episode { #定义枚举NEWHOPEEMPIREJEDI
}
type Human {id: ID!name: String!appearsIn: [Episode]! #使用枚举类型homePlanet: String
}
接口(interface)
跟许多类型系统一样,GraphQL 支持接口。一个接口是一个抽象类型,它包含某些字段,而对象类型必须包含这些字段,才能算实现了这个接口。
例如,你可以用一个 Character 接口用以表示《星球大战》三部曲中的任何角色:
interface Character { #定义接口id: ID!name: String!friends: [Character]appearsIn: [Episode]!
}
#实现接口
type Human implements Character {id: ID!name: String!friends: [Character]appearsIn: [Episode]!starships: [Starship]totalCredits: Int
}
type Droid implements Character {id: ID!name: String!friends: [Character]appearsIn: [Episode]!primaryFunction: String
}
GraphQL入门之Schema和类型规范相关推荐
- 【ReactJs+springBoot项目——租房】第3章:OSS存储图片+本地存储+ 房源列表查询+GraphQL入门
图片存储解决方案的分析 阿里云OSS存储方案的实现 本地存储方案的实现 整合前端系统实现图片上传功能 实 现 房 源 列 表 查 询 功 能 GraphQL的入门 1.图片存储解决方案 在新增房源中, ...
- GraphQL 入门
## GraphQL 入门 GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义).GraphQL 并没有和任何特定数据库或者存储引擎 ...
- GraphQL入门基础篇教程
历史 GraphQL是由Facebook创造的. 当时,Facebook想在移动端实现新闻推送,这不像检索一个故事.作者.故事的内容.评论列表和喜欢该文章的人这么简单,而是每个故事都相互 ...
- graphql入门_GraphQL入门指南
graphql入门 by Leonardo Maldonado 莱昂纳多·马尔多纳多(Leonardo Maldonado) GraphQL入门指南 (A Beginner's Guide to Gr ...
- GraphQL 入门第一篇
GraphQL 入门 在接下来的一系列文章中,我们会了解 GraphQL 是什么,它是如何运作以及如何使用它.在找如何搭建 GraphQL 服务的文档?这有一些类库可以帮你用多种不同语言实现 Grap ...
- iPhone开发入门守则:Objective-C编码规范--系列教程
iPhone开发入门守则:Objective-C编码规范(1) iPhone开发入门守则:Objective-C编码规范(2) iPhone开发入门守则:Objective-C编码规范(3) iPho ...
- GraphQL入门之进一步了解GraphQL
进一步了解GraphQL GraphQL很好的解决了RESTful在使用过程中的不足,接下来,我们进一步了解下它. 按需索取数据,避免浪费 演示地址:http://graphql.cn/learn/s ...
- 从graphql endpoint获取schema文件
graphql server端有更新,client端需要重新获取schema文件用于创建新的api request,下面简要记录如何从graphql endpoint获取schema文件 You ca ...
- 5.TypeScript入门之TS高级类型(class类)
上一章节:4.TypeScript入门之TS常用类型(3) Ⅳ.TypeScript高级类型 概述 TS中的高级类型有很多,重点学习以下高级类型: class类 类型兼容性 交叉类型 泛型和 keyo ...
最新文章
- 欠阿里云一分钱,会是什么样的后果...
- 利用Libra进行机器学习和深度学习
- WPF-数据绑定:日期时间格式
- asterisk libxml2
- 对SqlServer2008中的日志进行截断的方法
- 通达信手机版指标源码大全_通达信指标公式源码短炒买卖指标
- Activity之间传递参数
- ORACLE——ROWNUM解析(使用ROWNUM大于条件,无法得到任何查询结果)
- .gitignore和“以下未跟踪的工作树文件将被签出覆盖”
- OpenGL基础11:空间
- jquery知识点总结(转载)
- Python设置32位环境
- linux用户态内核态通信,内核态与用户态通信 之 sockopt
- bzoj 1467 exBSGS
- 中创生日会 | 烟火向星辰,所愿皆成真
- 软件测试有白和黑盒和灰盒,白盒测试、灰盒测试和黑盒测试的区别
- 2022年十三届蓝桥杯国赛将至,来看看去年蓝桥杯C++b组国赛题目如何
- QTableView中添加icon
- Latex系列2---段落编写+标题编写+目录生成
- GraphQL实战-第一篇-GraphQL介绍