你是否应该(仍然)使用/学习GraphQL

244 阅读3分钟

GraphQL正迅速成为公司与数据互动的首选查询语言。虽然数据管理是很多公司最关心的问题之一,但很多人并不真正了解GraphQL的作用,也不明白它为什么如此受欢迎。

当GraphQL第一次被引入时,它提供了一种全新的方式来构建API,具有更多的控制权、更多的粒度和更多的灵活性。
我知道这项技术已经不再是一个热门话题了,不像2年前,简直每个人都在谈论它,它是多么迷人。
我暂时在两个项目中使用GraphQL,我认为它很好,但这里真正的问题是它仍然值得学习并在你的项目中使用,还是它只是一个阶段?

TL;DR

  • 不是每个项目都需要GraphQL

  • 一个可靠的REST API已经足够好了

  • GraphQL是用于REST太慢的时候

    GraphQL Vs.REST

    GraphQL Vs. REST

  • REST是无状态的,这意味着它不需要任何关于客户端状态的知识来正确解释请求。 所有必要的信息都包含在请求本身中。
    REST获取JSON数据,可用于任何服务器端语言和任何前端框架。

  • GraphQL的设计是为了使API快速、灵活和方便开发者。就像REST一样,它也是无状态的,可用于任何前端框架和任何服务器端语言,并且通常会获取JSON数据。但GraphQL变得非常独特的地方是它与前端的通信方式。

GraphQL有什么更好的作用

Image description

  • 前端快速产品开发:前端开发组必须等待一定的时间,等待后端组完成这些API的编写,以便客户端应用程序获取和发布数据。GraphQL生命周期提供了一种方法,前端和后端开发人员可以并行工作而不妨碍整个开发过程。

  • 一个单一的API调用:这允许你请求多个资源。这通过减少到服务器的网络往返次数,将时间和带宽都降到最低。它还有助于防止瀑布式的网络请求,即你依赖一个调用的结果来创建另一个。

  • 可定制的响应:这使它对应用程序的前端有很大好处。这涉及到为字段定义别名的能力,并将每个值解析为不同的值。

REST有什么更好的表现

REST仍然是领先的架构,大多数开发人员对它了如指掌。
Image description

  • REST有许多内置的功能:这使得实现简化的缓存、文件上传、甚至每个API密钥的速率限制变得超级容易。

  • Rest仍然是复杂查询的一个更好的选择:GraphQL的嵌套架构在创建复杂的查询时可能会变成一个瓶颈。

  • 在RESTful APIs中创建良好的错误处理仍然比较容易:GraphQL总是为每个API请求返回200 Ok状态,包括那些有错误的请求。

总结

根据需要,GraphQL和REST API开发生命周期方法都是有用的,两者都有其优点和缺点。GraphQL正以指数级的速度普及,主要是因为它的 "无过量和过少获取 "的能力。