提前锁票 InfoQ 最具价值感的视频栏目 | InfoQ 大咖说 了解详情
写点什么

5 款好用且有代表性的 GraphQL 工具

2021 年 2 月 19 日

5款好用且有代表性的GraphQL工具

本文介绍了几个与 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 功能。


地址:


https://www.prisma.io/

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。


地址:


https://relay.dev/

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 具有内置的过滤、分页、模式搜索、批量插入、更新、删除突变等功能;

  • 产品迭代快,发展迅速,未来会推出更多实用功能。


地址:


https://hasura.io/

URQL



URQL 是 Formidable 实验室提供的功能强大且应用场景广泛的 GraphQL 客户端。它使用 React hooks 以及相关组件,旨在成为一个轻量级的客户端。用户可以自定义满足自己特殊需求的多功能工具,并在进一步使用 GraphQL 后,可以对自定义工具进行微调。


URQL 的目标定位很明晰,即保持简单易用的同时,还要有能够处理复杂任务的功能。它具有以下几个特点:


  • 性能和功能相对平衡,比其他客户端轻量很多;

  • 支持自定义,客户端提供了一些默认设置,还可方便地自定义与 API、应用或框架交互的代码;

  • 开箱即用,URQL 基本上可以做到迅速启用,而且不需要像其他客户端那样进行大量的配置;

  • 软件命名有趣,以标志性情景喜剧角色命名。


地址:


https://formidable.com/open-source/urql/


原文链接:


https://blog.graphqleditor.com/graphql-tools-partone

2021 年 2 月 19 日 07:001163
用户头像
王坤祥 日拱一卒,功不唐捐。

发布了 65 篇内容, 共 82088 次阅读, 收获喜欢 71 次。

关注

评论

发布
暂无评论
发现更多内容

Vue生成AST算法的解析

djknight

Java Vue AST

ARTS-week one

Jokky💫

ARTS 打卡计划

『PyTorch』使用指定GPU的方法

kraken0

人工智能 学习 图像识别

是公司养活了你,还是你养活了公司?

四猿外

生涯规划 程序员 个人成长

深入理解JVM类加载机制

迷失的月亮

类加载 深入理解JVM

深入理解JVM内存管理 - 方法区

迷失的月亮

深入理解JVM 方法区 老年代

运维日志里隐藏的安全危机,你知道怎么挖吗?听听专家怎么说

secisland

态势感知 关联分析 SOC

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十五)编写测试-断言\假设\使测试失效

编程道与术

Java 编程 TDD 单元测试 JUnit

游戏夜读 | 什么是黑色一分钟?

game1night

CEO或业务负责人应该具备的数据分析能力

花生

工具 数据 CEO

面试题:教你如何吃透RocketMQ

奈学教育

架构 RocketMQ 架构设计

收藏!如何有效实施devops?

陈琦

DevOps 运维 持续集成 开发 自动化测试

手机是21世纪最成功的毒品

Neco.W

学习 提升效率 工作

除了直接看余额,谁更有钱还能怎么比(三)

石君

零知识证明 多方计算 同态加密

CPU的性能,编译器是这样压榨的!

GPU

算法 cpu 编译器 程序语言

搞定 HTTP 协议(一):HTTP 与网络基础

零和幺

技术 前端 HTTP

【大厂面试01期】高并发场景下,如何保证缓存与数据库一致性?

NotFound9

Java MySQL 数据库 redis 后端

CI/CD - Python Django 项目在 Jenkins 上的实践

meta-algorithmX

Python django TDD CI/CD

学习没进步?也许反馈有问题

KAMI

学习 认知提升

啪啪,打脸了!领导说:try-catch必须放在循环体外!

王磊

Java 性能优化 性能 java编程

产品周刊 | 第 17 期(20200531)

Herbert

产品 设计 产品经理 产品设计 产品推荐

Java是不是慢半拍?

范学雷

Java 架构 编程语言

奈学大数据开发工程师分享787个技术,快来收割

奈学教育

大数据

深入理解ContextClassLoader

迷失的月亮

深入理解JVM ContextClassLoader

万恶的NPE如何避免,几种你必须知道的方案!!!

不才陈某

后端

霸榜18年,作者连续20年获得微软MVP,这本SQL书凭什么成为畅销经典

图灵社区

数据库 SQL语法 sql查询

iOS 动画 - 窗景篇(一)

柯烂

ios objective-c swift 移动应用 动画

GcExcel:比 Apache POI 速度更快、性能更高

Geek_Willie

Apache POI GCExcel

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十四)编写测试-显示名

编程道与术

Java 编程 TDD 单元测试 JUnit

深入理解ClassLoader

迷失的月亮

类加载 深入理解JVM ClassLoader

撸一串趣图,给晚上加班打个鸡血

码农神说

程序员 加班 段子

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

5款好用且有代表性的GraphQL工具-InfoQ