这篇博客其实是以一次公司内的技术分享为基础做的调研和总结归纳,包含了我自己很多不成熟的观点看法。这次分享主要是想向新同事介绍为什么我们选择在项目中大规模使用 GraphQL 而不是更传统更简单的 RESTful API。
GraphQL 是什么
在上一篇有关 GraphQL 的博客里,我简单地说明了 GraphQL 的定义及其大致用途,贴了官网链接就开始介绍我使用 GraphQL 的“更优雅的”方式,对 GraphQL 本身描述得并不多。这里又贴一下英文的定义:A query language for your API
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
划重点,它是一种查询语言和使数据可查询的运行时。作为一种语言,它有自己的语法,能够定义Type
, Enum
, Input
, Fragment
, Query
, Mutation
等元素,熟悉 Typescript 的朋友会对此感到亲切。而在前端开发中需要重点关注的是以下几个部分: