MongoDB と PostgreSQL に接続する 2 つの ApolloLinks を持つ ApolloClient を定義しました。これは完全に機能しています。
const firstLink = new HttpLink({
uri: 'graphql-postgre',
//headers: yourHeadersHere,
// other link options...
});
const secondLink = new HttpLink({
uri: 'graphql-mongodb',
//headers: yourHeadersHere
// other link options...
});
const client = new ApolloClient({
link: ApolloLink.split(
o => o.getContext().clientName === "mongo",
secondLink,
firstLink // by default -> postgre)
),
cache: new InMemoryCache(),
fecthOptions: {
mode: 'no-cors'
},
shouldBatch: true
});
ここで、新しいデータベース (Neo4J) にアクセスするために新しいリンクを追加する必要がありますが、例が見つからず、2 つ以上のソースを使用できるかどうかもわかりません。2 番目のリンクにいくつかのロジックを含めようとして、次のコードを試しましたが、期待どおりに動作しません。1 番目と 2 番目のリンクから情報を取得しますが、3 番目のリンクからは取得しません。
const thirdLink = new HttpLink({
uri: 'graphql-neo4j',
//headers: yourHeadersHere
// other link options...
});
const client = new ApolloClient({
link: ApolloLink.split(
o => o.getContext().clientName === "mongo",
secondLink,
(o => o.getContext().clientName === "neo",
thirdLink,
firstLink) // by default -> postgre)
),
cache: new InMemoryCache(),
fecthOptions: {
mode: 'no-cors'
},
shouldBatch: true
});
前もって感謝します。