GraphQL 为什么火不起来?这么多年了

开发 后端
很多公司的后端使用了 GraphQL 来代替之前的 Restful 接口风格,那么为啥呢?GraphQL 到底有什么优势,值得这些公司去使用呢?

GraphQL 是啥?

官方介绍:GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。

通俗点说就是: 我们在使用 Restful 风格接口的时候,增删改查可能会有四个接口,但是如果你用了 GraphQL 的话,可能就只需要一个接口,通过传递不同的模板参数,去执行不同的增删改查操作。

你可以灵活地去调用 GraphQL 去获取你自己想要的数据。

简单实践

GraphQL 优势?

很多公司的后端使用了 GraphQL 来代替之前的 Restful 接口风格,那么为啥呢?GraphQL 到底有什么优势,值得这些公司去使用呢?

1.灵活

我们使用 Restful 的时候,大部分情况下一个接口只能返回一种数据,如果你想要另一种数据,那只能是重新再写一个接口。

但是在 GraphQL 中,返回什么样的数据,可以由调用方去决定,就比如刚刚实践的例子,假如我传了:

那么数据库查询会返回给我两个字段的数据:

如果你只需要一个字段,那么你可以传:

那么数据库查询就只会返回给你一个字段:

2.精简

其实刚刚已经举过例子了,Restful 风格下,增删改查需要写四个接口,但是 GraphQL 可能只需要一个接口即可,大大减少了接口代码。

3.统一

因为 GraphQL 查询的入口大大减少,甚至可能一个项目只有一个查询入口,所以统一了查询的规范。

GraphQL 局限性

1.学习成本

大部分前后端都习惯了 Restful 风格,想要转 GraphQL 需要一定的学习成本,所以我们可以看到一般使用 GraphQL 的都是初创公司或者大公司,只有这些公司才有条件或者成本区做这件事。

2.建设成本

很多公司都一直是建设 Restful 的基础架构,如果想要转 GraphQL,那意味着可能需要改造现有的架构,这是需要时间成本和建设成本的。

3.鸡肋?

说 GraphQL 好用吧,确实挺好用,但是说非他不可吧,好像也不是。感觉就是还没到非用他不可的地步。

4.安全性

正是因为 GraphQL 的灵活性开放性,所以导致了他的安全系数大大降低。

调用方能灵活获取数据,那是万万不可的,因为有一些私密数据可不能给他们去获取~

可能还有遇到一些恶意用户,对你的数据进行查询,进而对你造成不利。

5.排队?

只有一个查询入口的话,那如果很多调用方同时调用的话,难道要排队查询吗?这样的话会不会查询时长会很久?

责任编辑:赵宁宁 来源: 前端之神
相关推荐

2021-09-13 10:03:54

蓝牙连接蓝牙蓝牙设备

2021-04-27 15:13:20

Java开发语言

2020-07-02 14:12:52

C++语言编程

2013-03-04 10:10:36

WebKit浏览器

2024-01-10 17:04:13

通信模块通信技术通信模组

2024-03-07 10:21:56

2015-03-27 10:20:41

谷歌地图谷歌伟大

2021-06-30 06:56:18

数据泄露零信任网络安全

2020-05-25 20:46:59

Python编程语言程序员

2017-08-21 15:10:30

笔记本塑料材质工艺

2022-08-04 23:32:38

比特币以太坊代币

2011-09-06 09:37:04

MTK平台

2020-05-06 16:47:59

ServerlessMVC架构

2022-07-14 07:17:11

LXCDocker语言

2016-12-28 10:37:46

AndroidGradleApache Ant

2020-07-28 15:18:52

Gartner信息安全网络安全

2023-11-13 08:49:54

2022-07-26 23:43:29

编程语言开发Java

2017-12-21 19:38:50

润乾中间表

2024-02-20 08:09:51

Java 8DateUtilsDate工具类
点赞
收藏

51CTO技术栈公众号