选择将包含在下一个项目的技术堆栈中的技术可能很困难。在许多情况下——尤其是在 GraphQL 和 RESTful API 之间进行选择时——都是为了选择下一个最佳 API 设计架构。
构建 API 有四种重要的方法:SOAP、GRPC、REST 和 GraphQL。每当我们想要构建 API 时,我们经常将注意力集中在 REST 和 GraphQL 上。这是因为 REST 改变了使用 SOAP 和 GRPC 构建 API 的传统方式。
GraphQL 被广泛标记为更好的 REST,因为它代表了一种更好的构建 API 的方式。许多开发人员认为 GraphQL 将取代 REST。更多人已经发现 GraphQL 有助于解决开发人员在构建 REST API 时面临的一些常见挑战。
这两种构建 API 的方法完全不同。在实践中,这些技术通过发送 HTTP 请求并接收结果来工作。它们各有利弊,在本文中,我们将广泛讨论这两种改变了我们开发和扩展 API 方式的伟大技术。
不过,在深入了解细节之前,让我们先探讨一下 GraphQL 和 RESTful API 的含义。
什么是 GraphQL?
GraphQL 是一种 API 查询语言,也是使用现有数据回答这些查询的运行时。它还配备了强大的工具来处理最复杂的查询。
GraphQL 的核心特性是它能够仅请求和接收所请求的特定数据——仅此而已。这使得随着您的应用程序扩展您的 API 变得更加简单。
GraphQL 最令人兴奋的部分是它能够在一个端点中为您提供所有数据。
GraphQL API 架构
上图是 GraphQL 架构的典型表示。客户端从不同的设备发出请求,GraphQL 处理他们的请求并只返回他们请求的数据。这巧妙地解决了 RESTful API 中的过度获取和获取不足的问题。
在 GraphQL 游乐场中成功查询
在上面的示例中,我们展示了一个 GraphQL 游乐场以及如何使用单个端点查询数据。顶部是 API 端点,左侧是请求大陆名称的查询,最后,在右侧,我们响应我们请求的查询。
GraphQL 由 Facebook 创建,主要目的是解决他们的移动应用程序开发人员在使用 REST API 时的体验。自 2015 年发布第一个开源版本以来,GraphQL 经历了巨大的增长,因为科技行业的大公司采用了该技术。
使用 GraphQL 的公司
下面列出了一些在其服务器上积极使用 GraphQL 的公司和应用程序。
Facebook 创建了 GraphQL,自 2012 年以来,他们一直在生产中使用它来支持他们的移动应用程序。这家价值数十亿美元的社交网络公司于 2015 年开源了 GraphQL 规范,使其可以在许多环境和各种规模的团队中访问.
Facebook 使用 GraphQL
GitHub
GitHub 还通过提供 GraphQL API 来宣布使用 GraphQL,该 API