加入我们,从 10 月 8 日至 10 月 10 日在新泽西市,学习有关 GraphQL 联邦和 API 平台工程的最新的技巧、趋势和新闻。加入我们,参加 2024 年纽约市的 GraphQL 峰会
文档
免费开始

GraphOS 路由器是否会替代我的 API 网关?

GraphOS 路由器和 API 网关的区别


本文档中

路由器的关键区别在于它不基于URL或REST端点。路由器是一个GraphQL原生解决方案,用于处理您的客户端API操作

💡 技巧

Apollo GraphQL和Kong合作编制了一份联合论文,为API从业人员提供在复杂的API领域中导航并推动成功的数字体验所需的工具。更多信息请阅读博客文章

GraphQL原生

首先,我们来定义一下“GraphQL原生”的意思。GraphOS Routersupergraph上运行所有客户端操作. 这意味着路由器处理的请求不是针对任何随机服务,而是限制在supergraph schema定义和发布的范围内。 Subgraphs定义它们想要公开的模式和功能。一个良好的GraphQL schema不仅仅是公开公司中所有可用的数据,而是一个需求驱动的schema,将为客户端提供执行所需操作的所有权限,但不会过度暴露您的数据。由于subgraphs也是定义自身服务能力的,因此路由器可以成为执行subgraphs声明标准规则或策略的中心位置,例如a directive-based authN/Z plugin

type Query {
bankAccounts: [BankAccount] @authenticated @hasRole(role: ADMIN)
}

API网关(如Apigee、Mulesoft或AWS、Azure或谷歌云的网关)对它们下面的所有服务或它们的性能通常理解有限。它们可能有可以应用于这些服务的配置选项和规则,但这些规则是通用规则,必须在网关级别配置,而不是在服务定义级别。如果您想在一个服务的多个服务上应用一个通用规则,那么将取决于API网关管理员来配置、部署并应用该新规则到一组服务,而不是个别服务团队。

# Mock gateway rules
gatewayConfig:
myCustomRule:
tags: [requiresAuth]
ruleToApply: validate-jwt-plugin
myOtherCustomRule:
URL: '/accounts'
ruleToApply: requires-admin-permissions-plugin

支持非GraphQL API

GraphQL是一种创新技术,它为客户提供了对其操作的更多控制,并为服务团队提供了一个共同的语言来沟通。然而,GraphQL通常是公司今天使用的唯一API技术。如果您需要有一个共同的网关来保护REST端点和GraphQL端点,那么GraphOS Router可以作为存在于这一高级API网关之下的补充工具。您可以在最外层边缘层配置公司级策略,而任何其他定义为特定于GraphQL的策略则可以由路由器管理。此外,使用多层次防御安全策略可以降低您的公司风险,因此拥有API网关和路由器应用共享规则可以导致更安全的环境。

Data Layer
GraphQL
Edge
Partners
Clients
REST1
REST2
gRPC1
DB1
DB2
Router
Subgraph1
Subgraph2
API-Gateway
Partner1
Partner2
Client1
Client2
Client3

何时考虑GraphOS Router

如果您在生产环境中运行GraphQL API,并且希望能够:

使用最低延迟和可扩展性能完成所有这些,然后考虑今天采用GraphOS和GraphOS Router

下一个
主页
评价文章评价在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,即 Apollo GraphQL。

隐私政策

公司