GraphQL 是由 Facebook 于 2012 年发布的一种查询语言和运行时库,旨在提供更高效、强大和易于开发的 API。本文将介绍 GraphQL 发布时间线,从而了解其功能的发展和进步。
2012-2015 年:GraphQL 的创建和早期发展
由于移动应用的流行,Facebook 发现 RESTful API 的缺点,因为它们有很多端点和过多的请求。于是,Facebook 开发了一种新的技术,即 GraphQL。
在 2012 年初次创建 GraphQL 之后的几年里,Facebook 继续对其进行改进。他们改善了其查询语言,增加了对类型和接口的支持,并添加了对其它语言的客户端实现。GraphQL 处于 Facebook 内部使用状态,直到 2015 年 7 月,Facebook 宣布将其开放源代码。
2016 年:GraphQL 前端开发者社区的崛起
在 2016 年,GraphQL 开始引起前端开发者的关注。引入 Violet 构建的在线 IDE 中,同时也被 React 和 Relay 所支持。在这一点上,GraphQL 的问题是,虽然很好,但用户还没有很多,特别是在前端方面。由于 GraphQL 语言是特定于服务的,因此调用 GRAPHQL API 并不特别容易。因此,仅当 React 宣布 Relay 与 GraphQL 集成为止,才有所改善。Relay 是一个框架,该框架促进了 GraphQL 的使用。
2017 年:GraphQL 感染普及和可视化工具
假设你是一个前端工程师,你会发现自己用他人编写的 API 工作时很容易被卡住或缺乏所需的数据。但是有了 GraphQL,您可以轻松地定义您想要的内容,并更快地获取它。此外,由于其自我文档化功能,您不必猜测用GraphQL API时自己所获取的内容。
在 2017 年,由于 GraphQL 获得开发人员社区的注意,社区开源贡献增加,专门为 GraphQL 开发的工具已得到增加,包括 Insomnia、GraphiQL 和 Altair。
- Insomnia 是用 Electron 构建的跨平台 HTTP 调试工具,支持运行任意 GraphQL 查找。它还支持调整变量,猴打印代码,验证查询,并以 PDF、CSV、HTML 或 JSON 文件格式导出查询结果。Insomnia 也支持批量提交查询和跨项目共享。
- GraphiQL 是一个用于浏览和测试 GraphQL API 的开源 IDE。它提供从上下文说明到可用操作和变量协助的所有内容,支持自动填充,支持调试 GraphQL API 查询和变异,可以通过导入和导出内容来共享查询。此外,由于其可部署性,GraphiQL 是调试 GraphQL 服务的最佳工具之一。
- Altair 是一个跨平台 GraphQL 客户端,具有美观的用户界面,并使用数字签名验证查询和变异以实现查询安全性。Altair 支持随便发挥,支持生成查询、变异、获取枚举、运行脚本和调用操作等。另外,基于 JSON Web Token 授权所提供的高级选项也增加了查询和变异的保护性。
2018 年 - 现在:GraphQL 微服务和云
在微服务世界中,GraphQL 也在不断发展。Facebook 和其它企业在云端发布 GraphQL 作为可扩展 API 的新方式,包括 AWS AppSync 和 Hasura。此外,GraphQL 与容器应用程序和 Kubernetes 微服务堆栈的集成已提供资源的管理和更快的开发,从而为应用程序提供更可靠的开发周期。
- AWS AppSync 是一种理念为开者提供了使用 GraphQL 构建应用程序的同一平台。AWS AppSync 可以为您生成一个 GraphQL api,并将其指向适用于 DynamoDB、Lambda 和 Elasticsearch 等服务的数据源。这意味着您可以实现快速开发新应用程序,而无需深入研究与所选数据源有关的经验。
- Hasura 是一种 GraphQL 引擎,其中包括数据定义和权限管理,该引擎提供了生成 GraphQL api 的所有必需件。
结论
GraphQL 是一种查询语言和运行时库,是 REST 的替代品。它是一种更加高效、强大的方法,用于与应用程序编程接口进行交互。在 GraphQL 的 9 年时间线中,它已经从内部工具发展到宣布开源,被前端开发者接受,到目前为止,微服务工程已经创造出最优的扩展云 API。无论您是新手或经验丰富的开发人员,学习 GraphQL 都是值得考虑的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67454110c1a23897ea8e7df6