VueJS SPA Dynami c baseURL для Axios - PullRequest
0 голосов
/ 03 мая 2020

Я искал и искал и не могу найти шаблон для этого. Я бы считал себя промежуточным Vue разработчиком, однако бэкэнд - моя сильная сторона. Я работаю над приложением, которое будет маркировано посредниками. Хотя возможно иметь несколько сборок, избегать этого было бы идеально. Установка представляет собой автономный vue -cli SPA, подключающийся к Laravel API-интерфейсу и использующий пакет аутентификации Sanctum. Поэтому мне нужны звонки на тот же домен. Вопрос: реселлеры будут на своем собственном домене. Вопрос: существует ли шаблон / решение для динамической загрузки конфигов (в основном baseURL) для разных доменов (другие элементы будут соответствовать теме / таблице стилей). В настоящее время у меня есть несколько типичных записей:

т.е. axios.defaults.baseURL = process.env.VUE_APP_API_BASE_URL

По сути, в зависимости от домена, на котором обслуживается сайт, я бы хотел динамическую / динамическую конфигурацию. Я чувствую, что это было решено, но я не могу использовать правильные условия поиска для какого-либо направления, поэтому что-нибудь полезно. Я пробовал несколько вещей:

1) Синтаксический анализ в js, но, похоже, он не запускается достаточно рано в процессе, чтобы вступить в силу? Кажется, это работает, но я не могу заставить его «щелкнуть»

2) Нажать на конечную точку API publi c с текущим доменом и получить конфигурацию. Опять же, может реализовать, но не может заставить его правильно вводить в сторону Vue?

Любые ресурсы, ссылки на шаблоны или общие рекомендации были бы очень благодарны, чтобы избежать поддержки нескольких сборок только для нескольких переменные. Тем не менее, я не думаю, что в этом есть много лишних затрат, но я также могу сказать, что я неправ, и мне нужно несколько сборок.

Конечный результат

посещенный URL-адрес https://mydomaincom

затем baseURL = https://api.mydomiancom

посещенный URL-адрес https://resellerdomaincom

затем baseURL=https://api.resellerdomaincom

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Я не думаю, что существует общая схема решения вашей проблемы - я ничего не нашел в net.

Лучшим решением для разработки программного обеспечения может быть следующее:

  • имеет единый бэкэнд
  • распространяет только клиента среди ваших клиентов / посредников

Очевидно, что бэкэнд мог видеть домен приложения, из которого запрос приходит и управляет логикой c соответственно.

Удачи в вашем проекте.

0 голосов
/ 03 мая 2020

Честно говоря, как поставить вопрос, мне не очень понятно. Хотя мой обычный шаблон таков:

Создайте экземпляр ax ios примерно так:

export const axiosInstance = axios.create({
  // ...configs
  baseURL: process.env.VUE_APP_URL_YOU_WOULD_LIKE_TO_HIT
})

и затем всякий раз, когда я делаю запрос к какому-либо API, я бы использовал этот экземпляр.

РЕДАКТИРОВАТЬ: Согласно вашему редактированию, вы можете либо предоставить клиенту каждого клиента, и иметь файл .env для каждого из них, или вы можете иметь систему шлюза, где клиент топор ios конечная точка всегда одна и та же, всегда на одном и том же сервере, а затем оттуда сервер решает, что пинговать, основываясь на вашей собственной логике c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...