描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111628613
编辑推荐
为什么GraphQL是Ajax诞生以来*具创新性的数据获取技术?GraphQL通过为API提供查询语言和用以完成查询的运行状态,提供了对REST和特定页面服务架构的替代方案。借助这本书,Alex Banks和Eve Porcello为希望开始使用GraphQL的前端Web开发人员、后端工程师以及项目或产品经理提供了一条清晰的学习路径。
你将先后探索图论、图数据结构和GraphQL类型,之后在实际项目中学习如何为照片共享应用构建schema。本书还将向你介绍Apollo Client,可用来将GraphQL连接到你的用户界面。
探索图论并回顾当今使用的家喻户晓的图形实例
了解GraphQL如何将数据库查询方法应用于互联网
为照片分享应用创建一个schema,让它成为前后端团队间的桥梁和契约
使用JavaScript构建功能完备的GraphQL服务,使用Apollo实现客户端
了解如何为生产环境准备GraphQL API和客户端
内容简介
本书为希望开始使用GraphQL的前端Web开发人员、后端工程师以及项目或产品经理提供了一条清晰的学习路径。书中将先后探索图论、图数据结构和GraphQL类型,之后在实际项目中学习如何为照片共享应用构建schema。本书还介绍了Apollo Client,可用来将GraphQL连接到用户界面。
目 录
前言1
第1章 欢迎来到GraphQL的世界5
GraphQL是什么6
GraphQL规范8
GraphQL的设计原则8
GraphQL的起源9
数据传输的历史10
远程过程调用10
简单对象访问协议10
表述性状态传递(REST)10
REST的缺点11
过量获取11
获取不足13
管理REST接口15
现实世界中的GraphQL15
GraphQL客户端库15
第2章 图论17
图论相关词汇19
图论的历史22
树就是图25
现实世界中的图形结构28
第3章 GraphQL查询语言31
GraphQL API工具33
GraphiQL33
GraphQL Playground35
公共GraphQL API37
GraphQL查询字段37
边和连接40
片段41
变更47
使用查询变量48
订阅49
自检50
抽象语法树51
第4章 设计schema53
定义类型53
类型54
标量类型55
枚举55
连接和列表56
一对一连接57
一对多连接58
多对多连接59
不同类型的列表61
参数63
筛选数据64
变更67
输入类型68
返回类型71
订阅类型72
schema文档73
第5章 创建一个GraphQL API77
项目设置77
解析器78
根解析器80
类型解析器81
使用输入和枚举类型84
边和连接86
自定义标量90
apollo-server-express 94
上下文97
安装MongoDB 97
将数据库添加到上下文98
GitHub授权100
设置GitHub授权100
授权流程 101
githubAuth变更操作103
验证用户106
总结112
第6章 GraphQL客户端113
使用GraphQL API113
fetch请求113
graphql-request115
Apollo Client117
在React中应用Apollo Client118
启动项目118
配置Apollo Client119
Query组件121
Mutation组件124
授权126
为用户授权127
用户识别130
添加缓存132
取回策略132
持久缓存133
更新缓存134
第7章 现实世界中的GraphQL139
订阅139
使用订阅140
在项目中配置订阅144
上传文件148
在服务器端处理文件上传149
通过Apollo Client上传一张新照片151
安全157
设置请求超时时间157
数据限制158
限制查询深度158
限制查询复杂度160
Apollo Engine162
让我们更进一步163
增量迁移163
schema优先开发164
GraphQL的业内活动166
社区167
加入社区聊天群组167
第1章 欢迎来到GraphQL的世界5
GraphQL是什么6
GraphQL规范8
GraphQL的设计原则8
GraphQL的起源9
数据传输的历史10
远程过程调用10
简单对象访问协议10
表述性状态传递(REST)10
REST的缺点11
过量获取11
获取不足13
管理REST接口15
现实世界中的GraphQL15
GraphQL客户端库15
第2章 图论17
图论相关词汇19
图论的历史22
树就是图25
现实世界中的图形结构28
第3章 GraphQL查询语言31
GraphQL API工具33
GraphiQL33
GraphQL Playground35
公共GraphQL API37
GraphQL查询字段37
边和连接40
片段41
变更47
使用查询变量48
订阅49
自检50
抽象语法树51
第4章 设计schema53
定义类型53
类型54
标量类型55
枚举55
连接和列表56
一对一连接57
一对多连接58
多对多连接59
不同类型的列表61
参数63
筛选数据64
变更67
输入类型68
返回类型71
订阅类型72
schema文档73
第5章 创建一个GraphQL API77
项目设置77
解析器78
根解析器80
类型解析器81
使用输入和枚举类型84
边和连接86
自定义标量90
apollo-server-express 94
上下文97
安装MongoDB 97
将数据库添加到上下文98
GitHub授权100
设置GitHub授权100
授权流程 101
githubAuth变更操作103
验证用户106
总结112
第6章 GraphQL客户端113
使用GraphQL API113
fetch请求113
graphql-request115
Apollo Client117
在React中应用Apollo Client118
启动项目118
配置Apollo Client119
Query组件121
Mutation组件124
授权126
为用户授权127
用户识别130
添加缓存132
取回策略132
持久缓存133
更新缓存134
第7章 现实世界中的GraphQL139
订阅139
使用订阅140
在项目中配置订阅144
上传文件148
在服务器端处理文件上传149
通过Apollo Client上传一张新照片151
安全157
设置请求超时时间157
数据限制158
限制查询深度158
限制查询复杂度160
Apollo Engine162
让我们更进一步163
增量迁移163
schema优先开发164
GraphQL的业内活动166
社区167
加入社区聊天群组167
前 言
致谢
如果没有许多杰出人物的帮助,就没有这本书的诞生。最早是我们的《Learning React》一书的编辑Ally MacDonald鼓励我们写作本书的。之后我们非常幸运地与Alicia Young合作,正是她主导了这本书的出版。感谢Justin Billing、Melanie Yarbrough和Chris Edwards,他们的辛勤审校排除书中的错误。
在整个过程中,我们很幸运地从Apollo团队的Peggy Rayzis和Sashko Stubailo那里得到了反馈,他们分享了关于最新特性的见解和建议。还要感谢Adam Rackis、Garrett McCullough和Shivi Singh,他们都是优秀的技术编辑。
写这本关于GraphQL的书是因为我们热爱GraphQL。我们认为你也会热爱它的。
本书排版约定
本书使用以下排版约定:
斜体(Italic)
指示新术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
表示代码段以及段落中的程序元素,比如变量、函数名、数据库、数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
显示应由用户按字面输入的命令或其他文本。
等宽斜体(Constant width italic)
表示将由用户提供的值(或由上下文确定的值)替换的文本。
这个图标表示提示或建议。
这个图标表示重要说明。
这个图标表示警告或提醒。
使用代码示例
本书的随附资料(代码示例、练习题等)可以从网址https://github.com/moonhighway/learning-graphql/下载。
让本书助你一臂之力。也许你需要在自己的程序或文档中用到本书中的代码。除非大段使用,否则不必与我们联系取得授权。例如,无须请求许可,就可以用本书中的几段代码写成一个程序。但是销售或发布O扲eilly图书中的代码则必须事先获得授权。引用书中的代码来回答问题也无须获得授权。将大段的示例代码整合到你自己的产品文档中则必须经过许可。
使用我们的代码时,希望你能标明它的出处,但不强求。出处信息一般包括书名、作者、出版商和书号。例如:Learning GraphQL(O扲eilly, 2018),Eve Porcello和Alex Banks著。书号为978-1-492-03071-3。
如果还有关于使用代码的未尽事宜,可以随时与我们联系:[email protected]。
Safari在线电子书
Safari(前身为Safari Books Online)是一个面向企业、政府、教育工作者和个人的会员制培训和参考平台。
会员可以访问来自超过250家出版商的书籍、培训视频、学习路径、互动教程和精心策划的播放列表,包括O扲eilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley&Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones&Bartlett和Course Technology等。
更多信息,请访问http://oreilly.com/safari。
如何联系我们
对于本书如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
在本书的专属网页,你可以找到本书的相关信息,包括勘误表、示例代码以及其他信息。网页地址为:
http://bit.ly/learning-graphql-orm
对本书的评论和技术性问题,请发送电子邮件到:
[email protected]
要了解更多O’Reilly图书、培训课程、会议和新闻的信息,请访问:
http://www.oreilly.com
我们在Facebook的地址为:http://facebook.com/oreilly。
请关注我们的Twitter动态:http://twitter.com/oreillymedia。
我们的YouTube视频地址:http://www.youtube.com/oreillymedia。
如果没有许多杰出人物的帮助,就没有这本书的诞生。最早是我们的《Learning React》一书的编辑Ally MacDonald鼓励我们写作本书的。之后我们非常幸运地与Alicia Young合作,正是她主导了这本书的出版。感谢Justin Billing、Melanie Yarbrough和Chris Edwards,他们的辛勤审校排除书中的错误。
在整个过程中,我们很幸运地从Apollo团队的Peggy Rayzis和Sashko Stubailo那里得到了反馈,他们分享了关于最新特性的见解和建议。还要感谢Adam Rackis、Garrett McCullough和Shivi Singh,他们都是优秀的技术编辑。
写这本关于GraphQL的书是因为我们热爱GraphQL。我们认为你也会热爱它的。
本书排版约定
本书使用以下排版约定:
斜体(Italic)
指示新术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
表示代码段以及段落中的程序元素,比如变量、函数名、数据库、数据类型、环境变量、语句以及关键字。
等宽粗体(Constant width bold)
显示应由用户按字面输入的命令或其他文本。
等宽斜体(Constant width italic)
表示将由用户提供的值(或由上下文确定的值)替换的文本。
这个图标表示提示或建议。
这个图标表示重要说明。
这个图标表示警告或提醒。
使用代码示例
本书的随附资料(代码示例、练习题等)可以从网址https://github.com/moonhighway/learning-graphql/下载。
让本书助你一臂之力。也许你需要在自己的程序或文档中用到本书中的代码。除非大段使用,否则不必与我们联系取得授权。例如,无须请求许可,就可以用本书中的几段代码写成一个程序。但是销售或发布O扲eilly图书中的代码则必须事先获得授权。引用书中的代码来回答问题也无须获得授权。将大段的示例代码整合到你自己的产品文档中则必须经过许可。
使用我们的代码时,希望你能标明它的出处,但不强求。出处信息一般包括书名、作者、出版商和书号。例如:Learning GraphQL(O扲eilly, 2018),Eve Porcello和Alex Banks著。书号为978-1-492-03071-3。
如果还有关于使用代码的未尽事宜,可以随时与我们联系:[email protected]。
Safari在线电子书
Safari(前身为Safari Books Online)是一个面向企业、政府、教育工作者和个人的会员制培训和参考平台。
会员可以访问来自超过250家出版商的书籍、培训视频、学习路径、互动教程和精心策划的播放列表,包括O扲eilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley&Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones&Bartlett和Course Technology等。
更多信息,请访问http://oreilly.com/safari。
如何联系我们
对于本书如果有任何意见或疑问,请按照以下地址联系本书出版商。
美国:
O’Reilly Media,Inc.
1005 Gravenstein Highway North
Sebastopol,CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
在本书的专属网页,你可以找到本书的相关信息,包括勘误表、示例代码以及其他信息。网页地址为:
http://bit.ly/learning-graphql-orm
对本书的评论和技术性问题,请发送电子邮件到:
[email protected]
要了解更多O’Reilly图书、培训课程、会议和新闻的信息,请访问:
http://www.oreilly.com
我们在Facebook的地址为:http://facebook.com/oreilly。
请关注我们的Twitter动态:http://twitter.com/oreillymedia。
我们的YouTube视频地址:http://www.youtube.com/oreillymedia。
评论
还没有评论。