Как хранить URL-адреса API в файлах типа app.config / web.config для приложения React, размещенного в AWS S3 - PullRequest
0 голосов
/ 06 августа 2020

В чем проблема?

У меня есть приложение React, размещенное на AWS S3. Приложение запрашивает URL-адрес API и отображает результат. URL-адрес API изменяется в зависимости от среды.

DEV-среда - https://192.168.0.1/api/users

TEST environment - https://192.168.0.2/api/users

Я хочу, чтобы эти разные URL-адреса API были в файле, например app.config / web.config, чтобы я мог изменять URL-адрес в любое время (что позволяет избежать сборки / развертывания).

ЧТО Я ПЫТАЛ?

  1. Я попытался добавить эти URL-адреса в файл .env следующим образом:

DEV_API_URL = https://192.168.0.1/api/users

TEST_API_URL = https://192.168.0.2/api/users

После этого я могу использовать эти URL-адреса из кода React следующим образом:

env.DEV_API_URL

env.TEST_API_URL

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

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

ЧТО МНЕ НУЖНО?

Не могли бы вы сообщить мне место (например, app.config / web.config) где я могу изменить эти URL-адреса, и мое приложение React сразу же загрузит их без сборки / развертывания?

Ответы [ 2 ]

1 голос
/ 07 августа 2020

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

Это добавляет много накладных расходов БД, но не требует развертывания. Вы просто меняете URL-адрес в БД по мере необходимости.

0 голосов
/ 06 августа 2020

Я думаю, вы можете использовать переменные окружения. По сути, вы можете создать что-то для разработки / постановки / производства и иметь файлы с именем .env.development .env.production, где вы можете иметь переменные среды, например: REACT_APP_API_URL=https://example.com, и использовать их в своем коде с process.env.REACT_APP_API_URL. Обратите внимание, что они должны иметь префикс REACT_APP. Вот некоторые библиотеки, которые вы можете использовать: dotenv , env-cmd

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