Изменить конечную точку Apollo в провайдере Apollo

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


person Neekhaulas    schedule 30.07.2018    source источник


Ответы (2)


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 получил поддержку нескольких клиентов, это может быть полезно, если вы хотите переопределить конечную точку только для некоторых запросов, но я думаю, что это оффтоп

person Yevhenii Ponomar    schedule 08.06.2019

Я делаю это в одном из своих приложений. Я храню строку URL в локальном хранилище или в асинхронном хранилище на мобильном устройстве. вы можете проверить строку при загрузке приложения и попросить пользователя ввести ее, если строка URL-адреса не сохранена. приложение должно будет обновиться после ввода URL-адреса и сохранения его в локальном хранилище.

person wrod7    schedule 01.10.2018