企业级 API 集成与聚合的超级图架构解决方案
在现代企业中,构建或消费API的过程充满挑战,尤其是在复杂的企业数据和API环境中。这些环境通常具有以下特征:
- 存在多个数据域,每个域由独立的工程团队管理或拥有(即多个API生产者)。
- 存在多个应用程序,每个应用服务于不同的目的或用户群(即多个API消费者)。
API的开发通常是一个协作过程,主要由全栈开发者或后端工程师负责。然而,在多利益相关方的企业环境中,由于资源限制和目标冲突,API的开发和使用常常面临以下问题:
- 前端团队需要与后端团队协商API需求,达成合约后再开发API。每次新增数据或用例都会触发这一耗时的循环。
- 领域团队负责构建领域API,但这些API往往未针对消费者需求进行优化,消费者被迫复用这些规范化的API。
- 多个领域团队之间难以协作,无法有效支持消费者团队的需求。
这些问题导致API难以满足消费者需求,例如性能优化、集成、聚合和编排等。此外,为多个消费者提供一致、标准化的API也非常困难,因为每个消费者或用例可能需要专门定制。
超级图架构的核心原则
在复杂的企业环境中,打造新应用体验需要高效的架构模型。超级图架构框架通过以下核心原则解决API集成与聚合的挑战:
- 联邦API平台:类似于API市场,涉及两个关键利益相关方——API生产者和消费者。
- 关键活动支持:超级图必须无缝支持以下三项活动:
- 将API生产者及其领域接入API平台。
- 为消费者提供高质量的超级图API。
- 捕获并扩展数据需求,以持续迭代超级图。
- 标准化领域API:领域API需支持过滤、排序、分页和聚合等功能,以实现高质量的数据交互。
通过采用领域优先的方法,超级图架构能够在任何数据域(如数据库、REST或gRPC)中生成高质量的API。这些API协议无关,可以配置为REST、GraphQL或gRPC。
示例:GraphQL模式生成
以下是从数据库表生成的GraphQL模式示例:
type field(
distinct_on: [field_select_column!]
limit: Int
offset: Int
order_by: [field_order_by!]
where: field_bool_exp
): [Type!]!
注意:该模式支持过滤、排序和分页功能。
此外,Hasura DDN允许将业务逻辑(如CQRS模式的命令)与领域模型结合使用,并适配为REST或GraphQL等协议。这种方式能够以最小的工作量交付领域模型的数据和操作,同时支持消费者选择的协议。
API集成的挑战
API集成指调用API以获取新信息(读取)或触发操作(创建、更新或删除)。然而,由于企业数据环境的异构性和消费者需求的多样化,API集成面临以下挑战:
- 输出格式或协议不理想:例如,gRPC适合服务间通信,但不适合React应用消费。
- 消费者需求多样化:某些团队可能需要GraphQL API,而其他团队可能缺乏学习新格式的时间。
- 缺乏类型化模式或SDK支持:典型REST API如果没有OpenAPI规范,就无法通过SDK提供类型安全性。
- 文档缺失或过时:API文档的不完善会增加集成难度。
- 缺乏标准化设计:某些领域API支持过滤和批处理,而其他API质量较低,导致每次集成都需要定制。
- 领域内缺乏API:某些领域可能完全没有API,数据源只能通过应用代码访问。
- 版本控制与高速开发冲突:需要同时跟踪不同API及其版本历史。
Hasura DDN通过提供通用语义层和注册中心,解决了这些问题。它能够生成GraphQL和gRPC),并自动生成文档,从而提升API的可操作性和互操作性。
API聚合的挑战
API聚合是将多个API请求合并为统一响应的过程。这一技术能够优化多源数据检索、减少API调用次数并提升客户端性能。然而,API聚合在复杂数据环境中面临以下问题:
通常,API网关不执行聚合功能,而是通过编写“粘合”代码或聚合端点来实现。这种方法需要大量的开发和维护工作,并且可能导致所有权问题。
Hasura DDN通过超级图架构解决了这些挑战。超级图能够利用领域信息自动将请求拆分为独立的上游请求,无需开发和维护新的聚合端点。这种自动化方式消除了昂贵的协作需求,使API聚合更加高效。
总结
在复杂的企业数据环境中,API集成与聚合是两大核心挑战。Hasura DDN通过超级图架构提供了高效的解决方案,帮助企业实现以下目标:
- 提供标准化、高质量的领域API。
- 支持自动化的API聚合,减少开发和维护成本。
- 提升数据交付和消费的敏捷性。
在后续文章中,我们将深入探讨超级图架构如何应对企业级API编排和组合的挑战。
原文链接: https://hasura.io/blog/a-supergraph-solution-to-api-integration-and-api-aggregation-challenges-in-the-enterprise
最新文章
- 如何使用 PostgREST 和 Apache APISIX 构建高效、安全的 RESTful API 解决方案
- 什么是SQL注入?理解、风险与防范技巧
- Excel中,创建一个公式来调用ChatGPT API并返回结果
- 告别Mock服务: 用Chrome DevTools模拟API数据
- 如何获取DeepL API Key 密钥(分步指南)
- Google AI实验背后的API技术:Doodle交互玩法拆解
- 5分钟掌握高德地图API如何调用
- Claude 代码生成被限流?免费与付费替代工具全面对比
- Envoy Gateway 的 Gateway API 扩展功能介绍 – Tetrate
- 使用Django REST Framework构建API——第二部分
- 鸿蒙应用实践:利用扣子API开发起床文案生成器
- 如何获取OpenRouter API Key 密钥(分步指南)