GraphQL 学习指南 (7):欢迎来到 GraphQL 的世界 1.3.3

阅读数:4 2019 年 12 月 15 日 19:25

GraphQL学习指南(7):欢迎来到GraphQL的世界 1.3.3

(表述性状态传递(REST))

内容简介
为什么 GraphQL 是 Ajax 诞生以来具创新性的数据获取技术?GraphQL 通过为 API 提供查询语言和用以完成查询的运行状态,提供了对 REST 和特定页面服务架构的替代方案。借助这《GraphQL 学习指南》,Alex Banks 和 Eve Porcello 为希望开始使用 GraphQL 的前端 Web 开发人员、后端工程师以及项目或产品经理提供了一条清晰的学习路径。你将先后探索图论、图数据结构和 GraphQL 类型,之后在实际项目中学习如何为照片共享应用构建 schema。
《GraphQL 学习指南》还将向你介绍 Apollo Client,可用来将 GraphQL 连接到你的用户界面。

今天各位最熟悉的 API 范例就是表述性状态传递(Representational State Transfer,REST)。REST 是罗伊·菲尔丁(Roy Fielding)于 2000 年在其博士论文中提出来的一种软件架构风格。REST 描述了一种面向资源的架构,用户可以通过执行 GET、POST、PUT 和 DELETE 等操作来浏览 Web 资源。他把资源网络看成虚拟状态机,并且用户执行的动作(GET、POST、PUT、DELETE)都是机器内的状态变化。站在今天的视角可能会觉得这是理所当然的,但在那个年代,这无疑是个划时代的想法。

在 RESTful 架构中,路由代表了信息。举例来说,从以下这些路由请求信息将产生特定的响应:

复制代码
/api/food/hot-dog/
api/sport/skiing/
api/city/Lisbon

REST 使我们可以利用各种接口创建数据模型,明显优于之前的架构。它提供了在日益复杂的 Web 中处理数据的新方法,且没有强制规定数据响应格式。起初,REST 是同 XML 一起使用的。AJAX 最开始是 Asynchronous JavaScript And XML 的首字母缩写,因为 Ajax 请求的响应数据被格式化为 XML(现在 Ajax 已经是一个独立的单词了)。这让前端开发者很困惑:在 JavaScript 中使用数据前还要解析 XML 响应。

没过多久,道格拉斯·克罗克福德(Douglas Crockford)开发出了 JSON(JavaScript Object Notation)并将其标准化。JSON 和语言无关,它提供的是一种优雅的数据格式,许多不同的语言都可以解析和使用它。紧接着,克罗克福德撰写了著名的《JavaScript: The Good Parts》,充分展示了 JSON 的优点。

RESTful API 的影响不言而喻。所有的 API 开发者都从中获益。以至于有一些爱好者去和别人争论什么是 RESTful,哪些不是 RESTful,这些人被称为“REST 党”(RESTafarians)。好了,既然 RESTful API 如此成功,那么拜伦他们缘何还要另起炉灶呢?这就要从 REST 的缺点说起了。

GraphQL学习指南(7):欢迎来到GraphQL的世界 1.3.3

购书地址 https://item.jd.com/12639300.html?dist=jd

评论

发布