GraphQL 作为抽象层
使用 GraphQL 作为服务消费者和后端服务之间的抽象层
使用 GraphQL 的一大优势是GraphQL它可以提供一个服务消费者和维护后端服务团队的抽象层。
在前后端分离(BFF)架构中,每个 BFF 都可以连接到任意数量的后端服务。随着为每个应用程序添加新的 BFF,连接的数量会激增,任何后端服务的更改都会产生重大影响。
服务迁移示例
假设一家公司有十个应用程序,每个应用程序都有自己的 BFF。该公司正在将众多后端 API 之一迁移到不同的技术。由于 BFF 拥有数据编排权力,该组织必须更新十个不同的 BFF。
为了避免破坏性更改,客户端必须
- 了解变更过程中发生的情况,
- 跟踪时间表,
- 并跟踪字段名称的更改。
如果公司使用了 GraphQL 作为抽象层,消费者不需要了解此更改,因为组织已经在一个图表模式后面抽象了后端 API。唯一需要更改的是 GraphQL 层。
随着公司的发展,这可以消除由于后端服务变更影响降低而导致的大量更新、部署和依赖关系。
结论
GraphQL 是一个强大的工具,可以从前端消费者中抽象出后端服务的复杂性。它可以保护消费者不受到那些服务重大更改的影响,同时减少这些更改的影响。最终,它为消费者提供了选择和控制权,而不会对后端服务产生负面影响。
进一步阅读
- 一起使用 GraphQL 和 REST
- xolv.io上的博客文章: 如何从bff迁移到GraphQL联邦