NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Bustle 的 GraphQL 实践

  • 2017-10-12
  • 本文字数:1200 字

    阅读完需:约 4 分钟

Facebook 将 GraphQL 定义成“一门 API 查询语言以及一个支持查询现有数据的运行时”。REST 通过向 REST 端点发送请求获取数据,而 GraphQL 允许客户端指定它们想要的数据。

当 Facebook 公司内部开始大规模使用 GraphQL 时,社区才刚刚开始使用 GraphQL。InfoQ 采访了来自 Bustle 的工程总监 Steve Faulkner,谈论了 GraphQL 的相关问题以及 Bustle 如何使用 GraphQL,并为想要采用 GraphQL 的团队提供了一些建议。

InfoQ:GraphQL 在 Bustle 的应用情况是怎样的?

Steve Faulkner:GraphQL 现在在我们的生产系统里扮演着非常重要的角色。我们所有的 API、后端的 CMS 系统和前端的网站都从 GraphQL 获取数据。我们有两个独立的技术栈,后端的 CMS 内部系统和前端的 Preact 应用,它们都与 GraphQL 发生交互。

InfoQ:在切换到 GraphQL 之前,Bustle 使用的是什么技术?

Faulkner:我们之前主要使用的是 Rails 风格的 REST。在一开始我并不喜欢 GraphQL,甚至极力阻止想使用 GraphQL 的人。我认为“REST 已经足够好了,它什么都能做,而 GraphQL 太复杂了,我不知道该怎么把它引入我们的系统里,我不想把我们的技术栈搞得太复杂”。

但后来有两件事情改变了我的看法。首先是类型系统,GraphQL 的类型系统降低了我们的沟通成本,提升了我们的开发效率。第二点,我们的前端开发人员很快就能够上手,刚刚在生产环境进行了试验,就有很多人开始使用 GraphQL,因为他们不需要向别人请教任何问题就能够轻松使用它。他们会说:“如果我需要一个新查询,自己就能搞定”。

InfoQ:你们是怎么做出切换到 GraphQL 的决定的?

Faulkner:我们的工程团队在技术上很自由。我们很信任我们的开发人员,他们可以构建他们认为值得构建的东西。我们的一个开发人员说“我认为 GraphQL 是未来的趋势”,我觉得他说得没错,于是我们就开始尝试 GraphQL。我们的团队有一个习惯,如果我们看到了一些很酷的技术,就会把它放到生产环境进行试验。

InfoQ:GraphQL 为你们解决了哪些问题?

Faulkner:它首先解决了人员沟通问题。GraphQL 为 API 或文档的变更提供了开箱即用的解决方案。它是一门比 REST 更加严谨的 API 开发语言,它强制你开发出更好的 API,同时可以自动生成文档。它自带的 API 浏览器(explorer)完全是自动化的,它帮我们做了一些事情,虽然这些事情不是很难,但毕竟为我们节省了时间,加快了我们的开发速度。

InfoQ:想要切换到 GraphQL 的团队需要考虑哪些问题?

Faulkner:GraphQL 也存在一些不足,比如安全方面的问题、在生产环境中的运维问题、查询的复杂性、认证和授权问题。我们自己解决了当中的一些问题,但这些问题在社区方面并未得到解决。这些问题需要得到重视。如果有银行想要使用 GraphQL,需要想想“要做些什么来让它达到生产级别”。

Faulkner 在 2017 伦敦 QCon 大会上呈现了有关他们如何在 Bustle 使用无服务器架构来支持他们后端系统的演讲

查看英文原文 Switching to GraphQL at Bustle

2017-10-12 19:001920
用户头像

发布了 322 篇内容, 共 134.4 次阅读, 收获喜欢 144 次。

关注

评论

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

极光笔记 | 埋点体系建设与实施方法论

极光JIGUANG

精细化运营 数据埋点 用户运营

【kafka】常用命令汇总

石臻臻的杂货铺

kafka

可观测性最佳实践|阿里云事件总线 EventBridge 最佳实践

观测云

可观测性 云服务 可观测 观测云 可观测性用观测云

5分钟入门物联网大数据计算——实践类

阿里云AIoT

阿里云 物联网 IoT

技术分享| anyRTC回声消除算法进化

anyRTC开发者

人工智能 音视频 回声消除 语音通话 视频通话

企业经常需要进行传输文件,大文件传输有哪些方法?

镭速

热点面试题:为什么 0.1+ 0.2 != 0.3,如何让其相等?

控心つcrazy

JavaScript 面试 大前端 前端面试题 超全前端面试题

活动报名:Tapdata Cloud V3 最新功能全解与核心应用场景演示

tapdata

ChatGPT对于普通人有什么机会和影响?

引迈信息

人工智能 AI AIGC ChatGPT

手把手教你如何快速检测设备异常——实践类

阿里云AIoT

阿里云 物联网 IoT

Teradata在华落幕,国产化崛起,袋鼠云数栈会是更好的选择吗?

袋鼠云数栈

Python基础知识入门(四)

漫步桔田

ChatGPT模拟MySQL数据库 | 社区征文

NineData

MySQL 数据库 编程 技术栈 ChatGPT

DawnSql快速入门

陈飞

微服务 分布式数据库 实时数仓

Python 基础知识入门(三)

漫步桔田

吞吐量最高提升400%!百度智能云联合NVIDIA完成首批17个自动驾驶模型优化

科技热闻

技术科普|模糊测试背后的2个核心逻辑

云起无垠

模糊测试

会声会影2023终极版下载安装教程

茶色酒

会声会影2023

公众号接入 chatGPT 教程(附源码)

攻城狮杰森

Python AI openai ChatGPT

设备掉线怎么办?数据分析让冰冷的设备“开口说话”——实践类

阿里云AIoT

阿里云 物联网 IoT

3DMAX中的7个基本建模小窍门

Finovy Cloud

blender 3ds Max Cinema 4D

LED屏逐点校正指南

Dylan

像素 LED显示屏 全彩LED显示屏

451个PyPI包通过安装Chrome扩展窃取加密信息

墨菲安全

供应链安全 投毒

瓴羊Quick BI智能报表,让报表化复杂为简单!

巷子

【2.17-2.24】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

3款百里挑一的国产软件,逆天好用,装了就舍不得卸载

这我可不懂

思维导图 低代码 GIF

开源面对面:浅谈数据库技术与人工智能的结合与实践

阿里云数据库开源

postgresql 阿里云 PolarDB for PostgreSQL ChatGPT 数据库技术

Python基础知识入门(二)

漫步桔田

不被同事骂的代码规范,程序员们值得拥有!

程序员小毕

Java 程序员 程序人生 架构师 代码

父母、离别

毛广斌

生活

Tapdata Connector 实用指南:实时数仓场景之数据实时同步至 ClickHouse

tapdata

数据库 实时数仓

Bustle的GraphQL实践_JavaScript_David Iffland_InfoQ精选文章