Javatpoint标志
Javatpoint标志

GraphQL教程

GraphQL教程

GraphQL是一个新的由Facebook发明和开发的API标准.它是一个开源的服务器端技术,现在由世界各地的公司和个人组成的大型社区维护。它也是一种执行引擎,用作数据查询语言,用于获取声明性数据。

开发它是为了优化RESTfulAPI调用并提供了一个灵活、健壮和更有效的REST替代方案。

GraphQL是API的数据查询和操作语言,也是在为数据定义类型系统时执行查询的服务器端运行时。与REST api不同,GraphQL服务器只提供单个端点,并响应客户机请求的精确数据。

GraphQL教程

GraphQL的历史

GraphQL是Facebook的一个内部项目。它是由Facebook在2012年开发的,并用于他们的原生移动应用程序中。之后,它于2015年在React.js大会上公开发布。

2018年晚些时候,Facebook将这个GraphQL项目转移到一个名为GraphQL基金会的新成立的基金会,该基金会由非营利的Linux基金会托管。

GraphQL是由Facebook的团队创建的,该团队的主要创建者是Lee Byron,他想让GraphQL在网络平台上无处不在。

操作系统兼容性

GraphQL是一种跨平台、开源的api数据查询和操作语言。GraphQL服务器可用于多种语言,例如JavaPythonc#PHP世界杯2022赛程时间表最新 Haskell,JavaScriptPerl鲁比(人名)Scala、Elixir、Erlang、Clojure等。因此,它可以用于任何编程语言和框架。

GraphQL:一个快速发展的社区

GraphQL正在不断快速地发展它的社区,因为像Netflix和Coursera这样的大量公司都对类似的想法感兴趣,并致力于使这个API更高效。在GraphQL开源之后,Netflix开源了它的解决方案Falcor, Coursera取消了它的计划,完全转向使用GraphQL。

现在,很多公司都在使用GraphQL,比如Facebook,Github, Twitter, Coursera, yelp, Pinterest, Serverless, ProductHunt, Shopify等。

为什么使用GraphQL?

我们已经有了一个名为REST的API用于数据通信,它遵循一种清晰且结构良好的面向资源的方法。它还提供了一些很棒的想法,如无状态服务器、结构化资源访问等。但是,REST在处理访问它们的客户端快速变化的需求时并不是那么灵活。在这种情况下,当数据变得更复杂时,路由就会变长。有时,用一个请求获取数据是很有挑战性的。这就是我们使用GraphQL的原因。

让我们看看使用GraphQL的优点:

1.GraphQL更加精确、准确和高效。

GraphQL是精确、准确和高效的。只需向API发送一个GraphQL查询并获得所需的确切结果。GraphQL的结果总是可以预测的。使用GraphQL的应用程序是快速和稳定的,因为它们只获取所需字段的数据,这与REST api不同,REST api获取特定对象的所有字段的数据。

你可以通过一个例子来理解它。

假设有一个名为employee的对象,其属性为id、firstName和lastName。现在,我们必须创建一个移动应用程序来只获取firstName和id。如果我们设计一个类似于/api/v1/employee的REST端点,它将为employee对象的所有字段获取数据。这被称为数据过度抓取,因为在这里,数据是由REST服务过度抓取的。我们可以使用GraphQL来解决这个问题。

请看下面的GraphQL查询:

在这里,GraphQL查询只获取id和firstName字段的值,而不获取员工对象的其他属性的值。

2.从单个请求检索多个资源

通过使用GraphQL,您可以从单个请求获取应用程序所需的所有数据,而REST api则需要从多个url加载。这就是为什么使用GraphQL的应用程序即使在较慢的移动网络连接上也能快速运行。

请看这个例子:

我们有一个对象Employee。假设我们有另一个名为Company的对象,其属性为:名称和位置。Employee对象与Company对象有关联关系。如果我们使用REST API获取员工及其公司的详细信息,我们必须向服务器发出两个请求,例如/ API /v1/employees和/ API /v1/companies。这将迫使移动应用程序多次调用服务器以获得所需的数据。

但是如果使用GraphQL,移动应用程序可以在一个请求中获取Employee和Company对象的详细信息。

请看下面的GraphQL查询:

你可以看到输出包含了你所请求的字段:

3.GraphQL查询简单且易于阅读。

4.GraphQL最适合微服务和复杂系统,因为它使用了简单的查询。

5.它可以帮助您高效地处理多个数据库。

6.可以使用一个API调用来获取数据。

7.在GraphQL中,你不会面临过度抓取和不足抓取的问题。

8.使用GraphQL,可以以适当的格式发现模式。

9.GraphQL为测试查询和文档提供了丰富而强大的开发人员工具。

观众

要学习GraphQL,必须具备GraphQL的基本知识。

先决条件

我们的GraphQL教程旨在帮助初学者和专业人士。

问题

我们保证您在本GraphQL教程中不会发现任何问题。但是如果有任何错误,请将问题贴在联系表格上。


下一个话题 GraphQL安装





Youtube 观看视频请加入我们的Youtube频道:现在加入

反馈


帮助他人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


B.Tech / MCA






Baidu
map