Есть ли способ изменить конечную точку Apollo после создания клиента Apollo? Я хотел бы, чтобы пользователь ввел свою собственную конечную точку.





Я делаю это в одном из своих приложений. Я храню строку URL-адреса в localstorage или asyncstorage на мобильном телефоне. вы можете проверить строку при загрузке приложения и попросить пользователя ввести ее, если строка URL-адреса не сохранена. приложение должно будет обновиться после ввода URL-адреса и сохранения его в localstorage.
httpEndpoint может быть функцией, и она вызывается при каждом запросе.
Как упоминалось в @ wrod7, вы можете использовать localStorage, но глобальной переменной должно быть достаточно
// vue-apollo.js
export { defaultOptions }
// main.js
import { createProvider, defaultOptions } from './vue-apollo'
window.apolloEndpoint = defaultOptions.httpEndpoint
new Vue({
router,
apolloProvider: createProvider({
cache,
httpEndpoint: () => window.apolloEndpoint,
}),
render: h => h(App),
}).$mount('#app')
и вы можете установить apolloEndpoint где угодно, я использую window., чтобы сделать eslint счастливым
httpEndpoint вызывается с текущим запросом, поэтому вы можете условно вернуть конечную точку на основе operationName
vue-apollo получил поддержку нескольких клиентов, это может быть полезно, если вы хотите переопределить конечную точку только для некоторых запросов, но я думаю, что это оффтоп