GraphOS 路由器是否会替代我的 API 网关?
GraphOS 路由器和 API 网关的区别
本文档中
路由器的关键区别在于它不基于URL或REST端点。路由器是一个GraphQL原生解决方案,用于处理您的客户端API操作。
💡 技巧
Apollo GraphQL和Kong合作编制了一份联合论文,为API从业人员提供在复杂的API领域中导航并推动成功的数字体验所需的工具。更多信息请阅读博客文章。
GraphQL原生
首先,我们来定义一下“GraphQL原生”的意思。GraphOS Router在supergraph上运行所有客户端操作. 这意味着路由器处理的请求不是针对任何随机服务,而是限制在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 rulesgatewayConfig:myCustomRule:tags: [requiresAuth]ruleToApply: validate-jwt-pluginmyOtherCustomRule:URL: '/accounts'ruleToApply: requires-admin-permissions-plugin
支持非GraphQL API
GraphQL是一种创新技术,它为客户提供了对其操作的更多控制,并为服务团队提供了一个共同的语言来沟通。然而,GraphQL通常是公司今天使用的唯一API技术。如果您需要有一个共同的网关来保护REST端点和GraphQL端点,那么GraphOS Router可以作为存在于这一高级API网关之下的补充工具。您可以在最外层边缘层配置公司级策略,而任何其他定义为特定于GraphQL的策略则可以由路由器管理。此外,使用多层次防御安全策略可以降低您的公司风险,因此拥有API网关和路由器应用共享规则可以导致更安全的环境。
何时考虑GraphOS Router
如果您在生产环境中运行GraphQL API,并且希望能够:
使用最低延迟和可扩展性能完成所有这些,然后考虑今天采用GraphOS和GraphOS Router!