@miksha

Как сделать запрос через useFetch() через клиента и через сервер в зависимости от ситуации?

Добрый день!

Что имеем: фронт Nuxt 3 и бэкэнд Django в разных docker-compose. На сервере стоит Traefik.

Сейчас использую useFetch таким образом:

const config = useRuntimeConfig()
const {data:types, error, refresh} = await useFetch((process.server) ? config.backend_url+'/types/' : config.url+'/types/',
    {
      headers: {
        'HOST': config.host
      }
    })


nuxt.config.ts:

export default defineNuxtConfig({
runtimeConfig: {
        public: {
            url: 'https://api-domain.com/api',
            backend_url: 'http://docker-name:8000/api',
            host: Хост,
            token: process.env.TOKEN
        }
    },
})


То есть в useFetch()
проверяем
(process.server) ? ...
откуда идет запрос:
  • Если сервера, то обращаемся к API по имени docker и порту
  • Если с клиента, то обращаемся по https по доменному имено



Насколько это решение правильное? Или есть более качественные решения?
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы