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

2024年 3月 2日 55.2k 0

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.排队?

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

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论