# Clients multiples
Vous pouvez spécifier plusieurs client Apollo si votre application doit se connecter à différents serveurs GraphQL :
const defaultOptions = {
// Vous pouvez utiliser `wss` pour sécuriser la connexion (recommandé en production)
// Utilisez `null` pour désactiver les souscriptions
wsEndpoint: process.env.VUE_APP_GRAPHQL_WS || 'ws://localhost:4000/graphql',
// Jeton LocalStorage
tokenName: AUTH_TOKEN,
// Activation des requĂȘtes persistĂ©es automatiquement avec Apollo Engine
persisting: false,
// Utilisation gĂ©nĂ©rale des websockets (pas de requĂȘtes HTTP)
// Il vous faudra passer un `wsEndpoint` pour que ça fonctionne
websocketsOnly: false,
// Rendu cÎté serveur ?
ssr: false,
}
const clientAOptions = {
// Utilisez `https` pour sécuriser la connexion (recommandé en production)
httpEndpoint: 'http://localhost:4000/graphql',
}
const clientBOptions = {
httpEndpoint: 'http://example.org/graphql',
}
// Invoquez cette fonction dans votre fichier d'application Vue
export function createProvider (options = {}) {
const createA= createApolloClient({
...defaultOptions,
...clientAOptions,
});
const createB = createApolloClient({
...defaultOptions,
...clientBOptions,
});
const a = createA.apolloClient;
const b = createB.apolloClient;
// Création du provider Vue Apollo
const apolloProvider = new VueApollo({
clients: {
a,
b
}
defaultClient: a,
})
Dans l'option apollo
du composant, vous pouvez dĂ©finir un client pour toutes vos requĂȘtes, souscriptions, et mutations avec $client
(uniquement pour ce composant) :
export default {
apollo: {
$client: 'b',
},
}
Vous pouvez Ă©galement sp"cifier le client dans chaque requĂȘte, souscription et mutation grĂące Ă l'option client
:
tags: {
query: gql`...`,
client: 'b',
}