将联邦 GraphQL API 用于前端架构的后端

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 Amazon AppSync Merged API 可帮助平台和后端团队将多个 GraphQL API(反过来又连接到多个数据源、微服务和事件)组合成一个面向开发人员的单一后端换前端 (BFF) 端点。在本讲座中,您将了解 Capital One 等企业如何使用 GraphQL 来简化数千个数据源和微服务的数据访问。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共700字,阅读时间大约是4分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 演讲首先对比了传统的单一API架构与现代最佳实践。在过去,公司通常会拥有一个后端API为多个前端(如Web和移动应用程序)提供服务。这种模式导致了严重的效率低下: - API团队不得不处理来自Web、移动、下游服务和数据库的各种需求,从而成为了整个应用程序的瓶颈。 - API返回的通常是静态、通用化的数据,没有针对特定设备进行优化。例如,移动应用会加载专为Web应用定制的超量额外数据。 - 通常需要多次连续的API调用才能获取相关数据,这需要复杂的协调。 为了解决这些问题,后台前端(BFF)模式应运而生,作为传统单一大API架构的进化版本。现在,每个前端(如Web或移动)都有自己的专属后端API以满足其特定需求,这使得每个前端团队的灵活性和效率大大提高。 然而,BFF模式也引入了新的复杂性,如重复逻辑和努力在不同后台之间的增加。为了解决这个问题,GraphQL应运而生。它是一种灵活的声明式查询语言,可以解决一些BFF模式带来的新问题: - GraphQL使用一个端点代替多个REST端点。 - 查询结构由客户端而不是服务器响应定义。 - 它允许在单次调用中获取相关数据,避免多次往返。 - 它支持实时订阅,适用于反应式应用。 尽管如此,即使在GraphQL中,仍然存在关于模式重复和协调的难题。为了解决这个问题,GraphQL模式联盟出现了——它允许团队在独立开发自己的模式的同时,仍能在需要时共享和查询彼此的模式。 在构建时将各个模式合并成统一的模式。 - 所有AppSync功能,如授权,都在合并的模式上实现。 - 统一模式可以缝合跨域的关系,使单个查询能够返回相关数据。 - 来源API可以位于不同的亚马逊云科技帐户中,并通过资源访问管理员进行合并。 演讲者还探讨了与合并API相关的最佳实践,如模式设计、测试、基础设施编码以及应对更改的监控。他们展示了一个推荐书籍的应用程序的参考架构,该架构在AppSync中合并了四个GraphQL API: - 连接到DynamoDB的书籍API - 连接到RDS的作家API - 用作微服务的用户API - 使用Lambda的评论API 这些API通过API密钥和Cognito用户池进行保护。扫描二维码还可了解更多关于构建此架构的研讨会详细信息。 总的来说,本次演示展示了从单体到BFF,再到利用GraphQL及其联盟功能的API架构的发展。通过采用亚马逊云科技的AppSync和合并API的最佳实践,不同团队间能够构建一个强大的联合图形。这最终使得在向客户交付价值时能实现更大的灵活性和效率。 **下面是一些演讲现场的精彩瞬间:** API后端团队在应对所有Web和移动需求方面面临着巨大的压力,这是他们必须面对的主要挑战。 ![](https://d1trpeugzwbig5.cloudfront.net/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures/images/rebranded/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures_0.png) 演讲者探讨了传统REST API在处理来自不同设备和请求时的局限性,以及如何解决过度获取数据的问题。 ![](https://d1trpeugzwbig5.cloudfront.net/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures/images/rebranded/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures_1.png) 在re:Invent上,亚马逊云科技强调了在进行连续API调用时,由于获取数据不足而导致的问题,这可能需要多次往返才能收集到所需的信息。 ![](https://d1trpeugzwbig5.cloudfront.net/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures/images/rebranded/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures_2.png) 通过使用亚马逊云科技的服务,应用程序可以动态地对多个数据源进行查询,并实时作出响应,从而消除轮询带来的延迟并减少数据传输量。 ![](https://d1trpeugzwbig5.cloudfront.net/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures/images/rebranded/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures_3.png) 领导者们强调了使用亚马逊云科技服务如何能优化时间投入,这与内部建设形成了鲜明的对比。 ![](https://d1trpeugzwbig5.cloudfront.net/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures/images/rebranded/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures_4.png) 随着架构从传统的API向微服务转变,再到前端的后端(使用GraphQL),并最终实现联邦架构,现在在规模上构建和运行工作负载成为了可能。 ![](https://d1trpeugzwbig5.cloudfront.net/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures/images/rebranded/FWM313-Using_federated_GraphQL_APIs_for_backend_for_frontend_architectures_5.png) ## 总结 本次演讲探讨了API架构从传统单体设计向现代基于GraphQL和CQN(模式联盟)的后端前端设计的转变。演讲概述了传统API在服务多个前端方面所面临的限制,并解释了后端前端如何使后端与特定客户端实现解耦。GraphQL有效地解决了获取过多或过少的数据问题,并能根据每个客户端进行定制化响应。亚马逊云科技的AppSync可以高效地处理大规模GraphQL工作负载。Capital One将其餐饮预订平台应用于AppSync和CQN,使得独立的后端团队能够同时提供统一的API。通过AppSync整合的API在构建过程中将来自不同团队的模式组合成单一端点。最佳实践包括在整合的模式中使用唯一的关键字、集中化的企业用例以及实施测试。整合后的API继承了AppSync的功能,例如可观察性。联邦网关是另一种组合API的方法。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭