本文介绍了几个与 GraphQL 有关的工具,它们能让你更方便地使用 GraphQL。鉴于篇幅有限,我只会挑选几个好用且有代表性的。
Prisma
我们都知道,使用 GraphQL 需要设置数据库。当然,你可以选择使用 BaaS 服务提供的外部数据库。但是,如果你不想这么做,那应该怎么办?这就是 Prisma 要解决的问题。Prisma 是一个中间件,它是介于你的应用和数据库之间的桥梁。Prisma 是一个 ORM 库,可以让你用自己所选的编程语言与服务器中的数据库进行交互。因此,如果你要将数据写入 MySQL 数据库,不必使用 SQL 语句进行操作,Prisma 可以让你使用 Python、JavaScript 或者你喜欢的其他某种编程语言进行操作。
很多人可能会有疑问,“这不就是常规的 ORM 库都能做到的吗?”。这个疑问很对。但是,Prisma 还附带一些其他功能:
与数据库种类解耦:Prisma 当前支持 MySQL、PostgreSQL、MariaDB、SQLite 以及 AWS Aurora,并且在不久的将来会支持更多的数据库;
具有对 TypeScript、JavaScript、Flow 和 Go 语言的支持;
提供内置的基本 CRUD 功能。
地址:
Relay
Relay 是由 Facebook 创建的一个 JavaScript 框架,用于获取和管理 GraphQL 数据。Relay 应该是 GraphQL 用户的首选工具,其特点是可以验证和优化你的代码。另外一个重点是,Relay 是 GraphQL 和 React 之间交互的桥梁。它可以让你使用 GraphQL 设置数据请求,然后对响应结果进行处理,将查询收集到网络请求中以获取所需的准确信息。
Relay 主要由三个松耦合模块组成:
Relay Compiler:一个 GraphQL 编译器,支持分析、验证和优化代码中的 GraphQL;
Relay Runtime:一个功能齐全的 GraphQL 运行环境,用于构建更高级别的客户端 API;
Relay/React:一个将 Relay 运行环境与 React 集成在一起的生产 API。
地址:
Apollo
Apollo 平台是 GraphQL 的一种功能实现,它可以从服务器获取数据并传送到 UI 进端行渲染。Apollo 客户端是 JavaScript 的全状态管理库,可以让你通过 GraphQL 管理本地和远程数据。Apollo 平台的目标是让你能通过 GraphQL 获取数据并构建 UI 组件。Apollo 服务端提供了可以快速构建 GraphQL API 的方法,可以让你通过任意 GraphQL 客户端(包括 Apollo 客户端)查询符合一定规范的服务器中的数据。
让我们一起看一下 Apollo 客户端有哪些特性:
提供了一种声明式的数据提取方法,所有用于数据检索、跟踪、加载以及上传数据到 UI 的逻辑都包含在一个查询中;
专为现代 React 设计,Apollo 客户端充分利用了最新的 React 功能,例如 hooks(钩子);
适应性强,可以无缝地放入任何 JavaScript 应用中;
兼容性高,可与任何 GraphQL API 一起使用。
地址:
https://www.apollographql.com/
Hasura
Hasura 是一个具有高性能的 GraphQL 引擎。它为 Postgres 数据库提供即时的 GraphQL API,可以用于远程模式下的业务逻辑处理以及数据库事件的 webhook 触发。
Hasura 主要功能是帮助快速构建由 Postgres 数据库驱动的 GraphQL 应用程序,或者帮助使用 Postgres 的应用迁移到 GraphQL,它具有以下特点:
实时性高,可以通过订阅,将 GraphQL 查询转换为实时查询;
开箱即用,只需将其指向 Postgres 数据库即可立即获得 GraphQL API;
强大的查询功能,Hasura 具有内置的过滤、分页、模式搜索、批量插入、更新、删除突变等功能;
产品迭代快,发展迅速,未来会推出更多实用功能。
地址:
URQL
URQL 是 Formidable 实验室提供的功能强大且应用场景广泛的 GraphQL 客户端。它使用 React hooks 以及相关组件,旨在成为一个轻量级的客户端。用户可以自定义满足自己特殊需求的多功能工具,并在进一步使用 GraphQL 后,可以对自定义工具进行微调。
URQL 的目标定位很明晰,即保持简单易用的同时,还要有能够处理复杂任务的功能。它具有以下几个特点:
性能和功能相对平衡,比其他客户端轻量很多;
支持自定义,客户端提供了一些默认设置,还可方便地自定义与 API、应用或框架交互的代码;
开箱即用,URQL 基本上可以做到迅速启用,而且不需要像其他客户端那样进行大量的配置;
软件命名有趣,以标志性情景喜剧角色命名。
地址:
https://formidable.com/open-source/urql/
原文链接:
评论