这是我的第一篇讨论文章。我通过奥德赛学会了Apollo
+ GraphQL
。目前,我正在使用Next.js构建自己的项目,这需要从2GraphQL端点获取数据。
我的问题:如何使用ApolloClient
从多个GraphQL端点获取数据?
下面是我的第一个端点的代码:
import { ApolloClient, InMemoryCache, createHttpLink } from "@apollo/client";
const client = new ApolloClient({
ssrMode: true,
link: createHttpLink({
uri: "https://api.hashnode.com/",
credentials: "same-origin",
headers: {
Authorization: process.env.HASHNODE_AUTH,
},
}),
cache: new InMemoryCache(),
});
export default client;
字符串
3条答案
按热度按时间xoshrz7s1#
你试图完成的是有点反对阿波罗的“一个图表”的方法。了解网关和联盟-https://www.apollographql.com/docs/federation/
话虽如此,一些黑客解决方案是可能的,但你需要维护一个更复杂的结构,并在每个查询中指定端点,这会破坏内置机制,并可能导致优化问题。
字符串
这个包似乎做你想要的:https://github.com/habx/apollo-multi-endpoint-link的
此外,请在此处查看讨论:https://github.com/apollographql/apollo-client/issues/84的
rpppsulh2#
今天遇到了同样的问题。我想让它有活力,所以这就是我出来的:
字符串
kkih6yb83#
真的很喜欢Pete的解决方案,因为它允许超过2个端点。
为了更好地进行类型检查,我决定编写自己的版本。
以下是我对他的解决方案的看法:
打印文本:
字符串
JS:
型