Правильный способ использования API сторонних производителей с помощью запросов в Django + React (Backend + Frontend)

Я использую Django на бэкенде и React на фронтенде. Я хочу использовать API OpenWeatherMap. В целях безопасности я хочу хранить свой ключ API на бэкенде. В настоящее время в моем приложении Django работает следующее. Когда делается POST-запрос, Django представление отображает информацию, требуемую от OpenWeatherMap. Как пользователь может ввести запрос в React, отправить его в бэкенд и получить результаты на фронтенде?

В настоящее время у меня есть очень хакерский способ сделать это:

  1. Я посылаю (используя axios) город, который пользователь вводит в React, в REST API, который я построил на Django.
  2. Бэкенд запрашивает OpenWeatherMap API с городом, который вводит пользователь, и отправляет данные, полученные от OpenWeatherMaps, обратно в мой API.
  3. После этого фронтенд использует GET-запрос к моему API, чтобы показать информацию пользователю.

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

Первые два шага в порядке. Вместо шага 3. Верните ответ от OpenWeather в качестве ответа на POST-запрос из шага 1. и разрешите его в своем коде React.

По второй мысли и для того, чтобы соответствовать рекомендациям REST:

  1. используйте GET для вызова вашего API с указанным пользователем названием города (POST обычно вызывается для создания нового ресурса - это просто условность)
  2. внутри вашего API вызовите OpenWeatherMap API с названием города
  3. верните результат в ваше приложение React как ответ на GET из пункта 1.

Подробнее о руководящих принципах REST API: https://restfulapi.net/

Вернуться на верх