全文共1279字,预计学习时长4分钟
图源:unsplash
自2015年开源以来,GraphQL因其灵活性和高效率而迅速普及。它可以通过允许客户端在一个请求中准确指定他们所需的数据来处理复杂的嵌套查询,从而消除了RESTful API固有的数据冗余和请求冗余的经典问题。
此外,由于它只是一种查询语言,与协议无关,因此可以通过HTTP2、websockets或TCP使用。
有什么潜在的风险?
但是,GraphQL并不是万金油,做出转变时还有一些问题需要考虑。
· 出错信息:即使查询失败,客户端也始终会收到200状态,因为非200响应代码表示问题发生在HTTP传输层而不是GraphQL层。
· 模式设计:如果开发人员在进行模式设计时粗心了(尤其是在定义resolver函数时),那么性能和效率可能会急剧下降——使用GraphQL API可能比RESTful API更糟糕。
· 性能测试:使用GraphQL API很难进行有意义的性能测试,因为它仅公开一个测试端点。在对包含多个嵌套查询的请求进行故障排除时,