用途:在店面客户端与后端电商服务之间放置 API 网关,作为鉴权、限流、缓存与请求路由的统一入口,让前端一次或少量调用即可聚合目录、购物车、搜索、CMS 等服务的数据。适用情形包括每次页面加载产生 10 次以上跨服务调用、需要在所有电商 API 上一致实施鉴权限流、或需要横跨目录/库存/CMS/个性化的单一 GraphQL schema。
主要能力:用 Apollo Router 组合多个 GraphQL 子图(各服务拥有自身 schema 切片,可扩展他方类型);构建基于 Fastify 的 REST BFF 聚合端点,如 PDP 与购物车;在网关层用 JWT/JWKS 校验身份并向下游传递;用 Redis 令牌桶限流并结合响应缓存;以 OpenTelemetry 做分布式追踪;支持把旧 REST 服务包装为虚拟 GraphQL 子图。
必要用法:安装 Apollo Router 执行 curl -sSL https://router.apollo.dev/download/nix/latest | sh,安装 Rover 执行 npm install -g @apollo/rover;编写 supergraph.yaml 后用 rover supergraph compose --config supergraph.yaml > supergraph.graphql 组合,再运行 ./router --supergraph supergraph.graphql --config router.yaml。需要 Node.js 18+ 与 Redis。
限制与注意:资料未提供具体收费或价格信息。网关应保持轻量,业务逻辑留在各服务;需为每个子图设置独立超时,注意避免实体解析的 N+1 查询,转发 Authorization 与 x-customer-id 头,显式配置 CORS 来源,并在 CI 中用 rover subgraph check 校验 schema 变更。