GraphQL 教程17 Mar 2025 | 4 分钟阅读 ![]() GraphQL 是一个由 Facebook 发明和开发 的新 API 标准。 它是一种 开源 的服务器端技术,现在由来自世界各地的众多公司和个人组成的庞大社区维护。 它也是一个执行引擎,用作数据查询语言,用于获取声明性数据。 它旨在优化 RESTful API 调用,并提供一个灵活、稳健且更有效的 REST 替代方案。 GraphQL 是你 API 的数据查询和操作语言,也是用于执行查询的服务器端运行时,当您为您的数据定义类型系统时。 与 REST API 不同,GraphQL 服务器仅提供一个端点,并响应客户端请求的确切数据。 ![]() GraphQL 的历史GraphQL 是 Facebook 的一个内部项目。 它于 2012 年由 Facebook 开发,并用于其原生移动应用程序。 之后,它于 2015 年在 React.js 大会上公开发布。 后来在 2018 年,Facebook 将这个 GraphQL 项目移至一个新成立的基金会,名为 GraphQL 基金会,该基金会由非营利组织 Linux 基金会托管。 GraphQL 由 Facebook 团队创建,主要的创建者是 Lee Byron,他希望 GraphQL 遍及所有 Web 平台。 操作系统兼容性GraphQL 是一个跨平台、开源的 API 数据查询和操作语言。 GraphQL 服务器适用于多种语言,例如 Java、Python、C#、PHP、R、Haskell、JavaScript、Perl、Ruby、Scala、Go、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 不同,后者获取特定对象的所有字段的数据。 你可以通过一个例子来理解它。 假设有一个名为 employee 的对象,它具有 id、firstName 和 lastName 属性。 现在,我们必须创建一个移动应用程序来只获取 firstName 和 id。 如果我们设计一个 REST 端点,例如 /api/v1/employee,它将获取 employee 对象的所有字段的数据。 这称为数据过度获取,因为此处,数据由 REST 服务过度获取。 我们可以通过使用 GraphQL 来解决这个问题。 请参阅以下 GraphQL 查询 在这里,GraphQL 查询仅获取 id 和 firstName 字段的值,而不获取 employee 对象的其他属性的值。 2. 从单个请求中检索多个资源 通过使用 GraphQL,你可以从单个请求中获取应用程序所需的所有数据,而 REST API 需要从多个 URL 加载。 这就是使用 GraphQL 的应用程序即使在慢速移动网络连接上也能快速运行的原因。 请看这个例子 我们有一个 Employee 对象。 假设我们有另一个名为 Company 的对象,它具有以下属性:name 和 location。 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 安装 |
我们请求您订阅我们的新闻通讯以获取最新更新。