QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

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:001372
用户头像
王坤祥 日拱一卒,功不唐捐。

发布了 67 篇内容, 共 94000 次阅读, 收获喜欢 91 次。

关注

评论

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

Spring Boot 搭建实际项目开发中的架构

武哥聊编程

Java 架构 springboot SpringBoot 2 28天写作

产品经理训练营 - 第二周作业

泡面加煎蛋

面试官:你说说ReentrantLock和Synchronized区别

叫练

AQS 多线程 ReentrantLock lock 独占锁

就是没想法?你可能太理性了!

Justin

心理学 创意 28天写作

产品经理第二周作业

朱琴

一点点感慨--移民二代

张老蔫

28天写作

Soul 源码阅读 04|Zookeeper 同步数据分析

哼干嘛

浅析整洁架构之道(三) 明析分层原则

御剑

架构 方法论 领域驱动设计

产品训练营第二章作业

Geek_79e938

Mybatis【15】-- Mybatis一对一多表关联查询

秦怀杂货店

mybatis

《分布式云边缘容器服务能力要求》《分布式云运维服务能力要求》标准研讨会成功召开

浪潮云

云计算 分布式

作业

让我思考一会儿

聊聊架构模式的变迁:从分层架构到微服务架构

华为云开发者社区

架构 软件 微服务 分布式架构 软件设计

Spring 是如何解决循环依赖的?

程序员小航

Java spring 源码 循环依赖

请给我一个被辞退的正当理由

熊斌

职场 28天写作

低成本更清晰,下一代视频编码技术将如何实现这一目标?

华为云开发者社区

AI 5G RTC 视频编码 vr

融资融券系统搭建

v16629866266

anyRTC在音频领域的探索

anyRTC开发者

ios android 音视频 WebRTC 在线教育

从JAVA内存到垃圾回收,带你深入理解JVM

华为云开发者社区

Java JVM 内存 虚拟机 垃圾回收

卡在了去治疗拖延的路上「幻想短篇 18/28」

道伟

28天写作

SpringBoot 2.0 中 HikariCP 数据库连接池原理解析

vivo互联网技术

数据库 ThreadLocal springboot Spring Boot 2 HikariCP

产品训练营 - 对二次作业

Wangyunnfei

【Skeleton】布局

学习委员

CSS 前端 html/css 28天写作 纯CSS

开发质量提升系列:问题登记列表(上)

罗小龙

生产事故 28天写作 解决思路

面试必问:如何实现Redis分布式锁

华为云开发者社区

redis 分布式锁 redisson

如何方便记忆和理解类图里的线条

华为云开发者社区

Java 函数 二叉箭头 类对象

智慧平安社区开发,江西老旧小区改造解决方案

WX13823153201

智慧平安社区开发

实习流水帐(一)

是鱼头啊啊啊

CNCF CTO解读:2021云原生最新趋势

华为云原生团队

Kubernetes 开发者 云原生 开源项目 边缘技术

MapReduce练习案例1-统计求和

小马哥

大数据 mapreduce 七日更

Elasticsearch partial update

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

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