Apollo联邦:Federation是否取代delegateToSchema?
创始人
2024-09-09 12:01:22
0

在Apollo联邦中,使用delegateToSchema来将查询委托给子服务是一种常见的方法。然而,最近推出的Apollo联邦的新功能Federation提供了一种更强大和灵活的方法来处理查询的委托。下面是一个示例,展示了如何使用Federation来取代delegateToSchema的方法。

首先,确保你的子服务已经升级到支持Federation。然后,确保你的网关也已经升级到最新版本。

在网关的ApolloServer配置中,将schema的类型设置为FederatedSchema,并传入你的子服务的schema列表。例如:

const { ApolloServer } = require('apollo-server');
const { ApolloGateway, FederatedSchema } = require('@apollo/federation');

const gateway = new ApolloGateway({
  serviceList: [
    { name: 'accounts', url: 'http://localhost:4001' },
    { name: 'products', url: 'http://localhost:4002' },
  ],
});

const server = new ApolloServer({
  schema: FederatedSchema,
  gateway,
});

server.listen().then(({ url }) => {
  console.log(`Gateway ready at ${url}`);
});

在子服务的schema中,使用@key指令指定实体类型的唯一标识符。例如,对于一个用户服务,可以这样定义User类型:

type User @key(fields: "id") {
  id: ID!
  name: String!
  email: String!
}

在子服务的resolver中,使用@requires指令指定其他服务所需的字段。例如,对于一个订单服务,可以这样定义Order类型:

type Order {
  id: ID!
  user: User @requires(fields: "userId")
  total: Float!
}

type User {
  id: ID!
  name: String!
  email: String!
}

这样,你就可以在网关中直接查询Order,并使用Federation自动将查询委托给适当的子服务。例如,查询一个订单的用户信息:

query {
  order(id: "123") {
    id
    user {
      id
      name
      email
    }
    total
  }
}

这个查询会被网关自动解析并委托给适当的子服务,然后返回整个查询结果。

总之,使用Apollo联邦的Federation功能可以更简单和灵活地处理查询的委托,而不再需要使用delegateToSchema。

相关内容

热门资讯

五漏洞(Wepoke机制)软件... 五漏洞(Wepoke机制)软件透明挂辅助器(辅助挂)透视辅助(2025已更新)(哔哩哔哩)1、这是跨...
ai代打(约局吧发牌逻辑)原来... ai代打(约局吧发牌逻辑)原来是真的有挂!原来真的有挂(2025已更新)(哔哩哔哩);小薇(透视辅助...
(WPk透明挂)确实有挂-微扑... (WPk透明挂)确实有挂-微扑克辅助挂辅助透视-德扑之星的发牌是有问题1、每一步都需要思考,不同水平...
八最新版(德扑工具)外挂辅助a... 相信很多朋友都在电脑上玩过德扑工具吧,但是很多朋友都在抱怨用电脑玩起来不方便。为此小编给大家带来了德...
两分钟攻略!越乡游辅助器外挂辅... 1、两分钟攻略!越乡游辅助器外挂辅助-越乡游辅助器原来真的有挂(2021已更新)2、进入游戏-大厅左...
第3脚本(Wepoke专用)外... 第3脚本(Wepoke专用)外挂辅助插件(辅助挂)透视辅助(2022已更新)(哔哩哔哩);建议优先通...
外挂(微扑克发牌)的确真的有挂... 外挂(微扑克发牌)的确真的有挂!原来真的有挂(2020已更新)(哔哩哔哩)微扑克发牌平台为新手玩家设...
(WPk透明挂)有挂秘笈-wp... (WPk透明挂)有挂秘笈-wpk胜率辅助透视-约局吧辅牌器;WPk透明挂软件透明挂更新新赛季,主要更...
十分钟了解!汇友手游外挂透视辅... 十分钟了解!汇友手游外挂透视辅助-汇友手游其实真的有挂(2022已更新),您好,这款游戏可以开挂的,...
5技巧(微扑克到底有挂)外挂辅... 这是一款非常优秀的微扑克到底有挂 ia辅助检测软件,能够让你了解到微扑克到底有挂中牌率当中全部隐藏参...