来源:unsplash自2015年开源以来,GraphQL凭借其灵活性和高效性迅速获得了普及。它可以通过允许客户端在一个请求中准确指定他们需要的数据来处理复杂的嵌套查询,从而消除RESTfulAPI中固有的数据冗余和请求冗余的经典问题。此外,由于它只是一种查询语言并且与协议无关,因此可以通过HTTP2、websockets或TCP使用。潜在风险是什么?然而,GraphQL并不是万能的,在进行转换时需要考虑一些问题。报错信息:即使查询失败,客户端也会一直收到200状态,因为非200的响应码说明问题出现在HTTP传输层,而不是GraphQL层。模式设计:如果开发人员在他们的模式设计中粗心大意(尤其是在定义解析器函数时),那么性能和效率可能会急剧下降——使用GraphQLAPI可能比使用RESTfulAPI更糟糕。性能测试:使用GraphQLAPI很难进行有意义的性能测试,因为它只公开了一个测试端点。在对包含多个嵌套查询的请求进行故障排除时,开发人员如何知道瓶颈在哪里,或者是什么导致请求失败?这些都是设计API时要考虑的问题。不过,好消息是性能优化和测试可以轻松完成,即使有一些限制。查询速度有多快?OpticQL是OSLabsBeta最近推出的开源项目,旨在通过性能测试解决上述问题。OpticQL是一个桌面应用程序,它为GraphQLAPI提供了一个用户友好的测试平台,结合了一个轻量级的NPM包,使开发人员能够将应用程序无缝连接到OpticQL,导入其模式并捕获数据库请求的性能指标。图源:UnsplashOpticQL特性包括:Schema可视化,以图形方式表示所有schema的字段和边。所有类型名称都以颜色编码和动态视图连接到它们的字段,还提供了模式可视化的全屏视图。·输入字段来编写和提交查询和修改。当查询或修改发送到OpticQL时,架构的所有受影响部分都将变为绿色,表示请求已“到达”它们。一个视图,其中包括返回的响应数据、细粒度的解析器跟踪信息以及请求触发的所有错误的列表。以毫秒为单位的请求执行的图形概述,可以选择查看最新请求的性能并将其与向OpticQL发出的历史请求的性能进行比较。·更多选项可浏览受查询影响的每个字段的扩展性能指标。对于想要测试和优化GraphQLAPI性能的开发者,OpticQL功能强大且易于使用,您可以下载它或在OpticsQL的网站上了解更多信息。
