GraphQL实战:写给全栈工程师们
上QQ阅读APP看书,第一时间看更新

1.6.2 GraphQL可以把多次请求合并为一个

如果客户端需要更多的数据怎么办?其实可以方便地扩展。代码如下:

这个查询就体现出GraphQL的威力了,请求用户9527的同时,还请求了产品0023。可以简单地把多种数据拼装在一起,这对前端页面是很有利的,因为经常需要在一个页面里展现不同的数据。还为用户9527多请求了两个字段email和friends。email较为简单,就是一个单一的值,但friends是个对象集合。对于这种对象,或者说复杂类型,以及它们的集合,可以继续为其指定需要的字段,这里指定了name和age。

如果需要,还可以在friends里再指定friends来查询朋友的朋友。也就是说,可以使用n层嵌套来达成查询目的,数据也不再是单一的资源,而形成了一个图。很多大公司就是看中这个特性才选择GraphQL的,这种图形化的查询对移动互联网开发的方方面面都非常有用,GraphQL不止可以给前端调用,也能给后端调用。