
上QQ阅读APP看书,第一时间看更新
1.7.2 GraphQL增大了后端系统设计的难度
GraphQL可以更好地获取和表达数据,顾名思义,GraphQL把数据表现成Graph(图),因为现实中的数据往往是葡萄串的形式,一读取就是各种各样的相关数据一大堆一起读取。而传统的RESTful API是把数据定义成若干种单一形式资源,每一种资源配合一个或一组Endpoint。可以看出,RESTful API倾向于开发者对某种资源以单个或者列表的形式来获取。虽然明显还是GraphQL更符合多数网站和移动应用的实际读取数据需求,但在系统设计上RESTful显得更加简洁清晰,尤其是在后端。RESTful API各个Endpoint的职责都十分明确,读取用户的就是读取用户,读取商品的就是读取商品,可做到更好的正交性,即较少互相依赖和干扰,这对日常的开发和维护都是很有利的。
所以,在GraphQL的系统设计中,要特别注意模块之间的耦合问题,切忌把所有模块都搅和在一起,变成一个巨大的“泥巴团”。