API是应用程序通过所谓的终结点向内部和第三方应用程序公开数据的通信通道。在设计和构建API时,我们需要一个合理的协议来实现服务器与第三方请求之间的通信。代表性状态转移(REST)是一个公认的逻辑选择:它定义了一组约束,开发人员可以遵循这些约束以使内容以高性能,有可靠性和可伸缩性的方式进行访问。符合REST约束的Web服务我们称为RESTful Web服务。
RESTful Web
与良好的HTTP请求一样,从API检索数据时,服务器响应中的任何延迟都将延时传播到最终用户,从而影响最后的响应时间。当资源想要从API检索某些数据时,它将需要从相应的端点请求数据,从多个资源呈现数据的组件(例如带有注释的文章和每个注释中的作者照片)可能需要经过几次往返服务器才能获取所有数据,然后才能呈现数据。此外,通过REST返回的数据量通常超过呈现该组件所需的数据量。
如果许多资源需要来自API的数据,则该API可能会成为性能瓶颈。那我们可以尝试使用GraphQL,GraphQL为这些问题提供了一种高性能的解决方案。本身,GraphQL是API的查询语言,并且是服务器端运行时,用于通过使用为数据定义的类型系统执行查询。与REST不同,GraphQL可以在单个请求中检索所有数据,并且响应将完全是所需的,而不会像REST那样通常有叫延时过度或不足地获取所需要的数据。
此外,由于GraphQL使用的是架构(表示数据结构的元数据),因此它已经可以将数据组织到首选结构中,因此我们可以毫无犹豫使用GraphQL用到自己项目中,例如,使用GraphQL产生代码的JavaScript代码,我们可以删除用于处理状态管理。GraphQL可以在客户端上运行速度更快的更干净的应用程序代码。
领取专属 10元无门槛券
私享最新 技术干货