加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 系统 > 正文

灵活性而设计的API技术

发布时间:2021-05-12 19:03:25 所属栏目:系统 来源:互联网
导读:作为一种为灵活性而设计的API技术,GraphQL对于API的开发者和消费者以及其背后的组织来说都是一个强有力的推动者。在本节中,我们将探讨GraphQL的一些关键领域。 (1) One Data Graph for All 对于拥有多个团队和系统,希望通过一个统一的API轻松获得其数据的


作为一种为灵活性而设计的API技术,GraphQL对于API的开发者和消费者以及其背后的组织来说都是一个强有力的推动者。在本节中,我们将探讨GraphQL的一些关键领域。

(1) One Data Graph for All

对于拥有多个团队和系统,希望通过一个统一的API轻松获得其数据的组织而言,GraphQL是一个绝佳的选择。

无论你使用了多少数据库、服务、遗留系统和第三方api, GraphQL都可以通过提供客户机可以与之通信的单一端点来隐藏这种复杂性。GraphQL服务器负责从正确的位置获取数据,并且客户端永远不需要知道不同数据来自何处的详细信息。因此,在为客户和内部用户轻松提供数据时,GraphQL生态系统提供了最大的灵活性。

(2) 没有过度获取或不足获取

对于GraphQL API客户来说,另一个巨大的好处是他们可以准确地请求他们所需要的数据,甚至跨相关实体。这一点尤为重要,因为不同的客户有不同的数据需求,或者因为不同的业务逻辑,或者因为他们只是呈现了不同的数据视图(例如,Web与移动),也可能有不同的硬件限制。

通过比较,从REST API有效地检索重要数据要困难得多。从单个端点请求数据往往会返回比实际需要的更多的数据(超取),而请求几个相关实体的数据通常需要多次调用API(欠取)或为特定的客户端请求提供专门的端点(重复劳动)。GraphQL通过准确地提供每个客户端请求的数据来解决此问题,仅此而已。

(3) 更好的开发人员体验

GraphQL生态系统附带许多工具,使使用GraphQL变得轻而易举。像GraphiQL和GraphQL Playground这样的工具提供了丰富的体验,允许开发人员以最小的努力检查和尝试API,这要归功于我们将在下一节中讨论的自我文档化特性。

另外,像GraphQL Code Generator这样的代码生成工具可以用来进一步加快开发速度,而其他工具和最佳实践也可以用来解决具体问题,包括:

客户端缓存在几个客户端库中是开箱即用的。

基于游标的分页(Cursor-based pagination)提供了一种跨数据列表提供分页的方法。

DataLoader通过批处理数据提取请求来提高性能,并且还提供了服务器端缓存的基本级别。

(4) 更高质量的系统

GraphQL API是围绕着类型系统构建的,它列出了每个字段的名称和类型,以及不同实体之间的关系。这种类型的系统或架构用于验证客户端发送的查询。schema可以通过一个叫做自省(introspection)的功能进行查询,自省通常用于生成文档和代码,这些文档和代码将在客户端集成API时使用。

因此,使用GraphQL时,只需花费最少的精力即可获得文档齐全的API。这为第一次使用API的开发者提供了极大的透明度,使开发更加顺利和高效。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读