Javascript 阿波罗联盟
我相信当我需要在彼此之间使用不同的服务时,我了解如何使用@key扩展类型。我想举个例子,以防我这个新手的理解不正确。例如,如果我为Javascript 阿波罗联盟,javascript,graphql,apollo,federation,Javascript,Graphql,Apollo,Federation,我相信当我需要在彼此之间使用不同的服务时,我了解如何使用@key扩展类型。我想举个例子,以防我这个新手的理解不正确。例如,如果我为账户和用户提供了一项服务,在后者中,我有类似的服务 type Users @key(fields: "accountIds") { id: ID! accountIds: [ID] } 我将通过在我的帐户服务中添加一个文件来扩展用户来扩展此功能,如: extend type Users @key(fields: "accountIds") { acc
账户
和用户
提供了一项服务,在后者中,我有类似的服务
type Users @key(fields: "accountIds") {
id: ID!
accountIds: [ID]
}
我将通过在我的帐户
服务中添加一个文件来扩展用户
来扩展此功能,如:
extend type Users @key(fields: "accountIds") {
accountIds: [ID] @external
accounts: [Accounts!]
}
我还需要添加一个解析器来设置accounts
应该是什么。首先,上面的说法正确吗?我明白我在做什么还是我错过了什么
下一个。我将如何处理一个类型,该类型在未联合的现有代码库中看起来像:
union AccountResult=Accounts | SelectedAccounts
如果我需要在其他服务中使用该
AccountResult
作为一种类型,我将如何使其可用?考虑到我上面所说的,我不知道我怎么能做到。再说一次,我是新手,所以我感谢你的耐心。我觉得第一部分没问题。我假设您在尝试添加SelectedAccount内容之前已经完成了,因此您应该知道第一对问题的答案;-)不过,我不确定我是否得到了你的第二个答案。AFAIU如果您想扩展它们返回的数据,所有服务都需要至少启用联邦(主要是添加@key
指令)。第一部分看起来没问题。我假设您在尝试添加SelectedAccount内容之前已经完成了,因此您应该知道第一对问题的答案;-)不过,我不确定我是否得到了你的第二个答案。AFAIU如果您想扩展服务返回的数据,所有服务至少需要启用联合(主要是添加@key
指令)。。