模拟面试、简历指导、入职指导、项目指导、答疑解惑可私信找我~已帮助100+名同学完成改造!

前言

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~

GraphQL 是啥?

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

图片

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

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

简单实践

图片

图片

GraphQL 优势?

图片

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

灵活

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

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

图片

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

图片

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

图片

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

图片

精简

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

统一

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

GraphQL 局限性

学习成本

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

建设成本

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

鸡肋?

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

安全性

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

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

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

排队?

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

结语

我是林三心

  • 一个待过小型toG型外包公司、大型外包公司、小公司、潜力型创业公司、大公司的作死型前端选手;

  • 一个偏前端的全干工程师;

  • 一个不正经的掘金作者;

  • 逗比的B站up主;

  • 不帅的小红书博主;

  • 喜欢打铁的篮球菜鸟;

  • 喜欢历史的乏味少年;

  • 喜欢rap的五音不全弱鸡如果你想一起学习前端,一起摸鱼,一起研究简历优化,一起研究面试进步,一起交流历史音乐篮球rap,可以来俺的摸鱼学习群哈哈,点这个,有7000多名前端小伙伴在等着一起学习哦 –> 

广州的兄弟可以约饭哦,或者约球~我负责打铁,你负责进球,谢谢~