Правильный способ использования API сторонних производителей с помощью запросов в Django + React (Backend + Frontend)
Я использую Django на бэкенде и React на фронтенде. Я хочу использовать API OpenWeatherMap. В целях безопасности я хочу хранить свой ключ API на бэкенде. В настоящее время в моем приложении Django работает следующее. Когда делается POST-запрос, Django представление отображает информацию, требуемую от OpenWeatherMap. Как пользователь может ввести запрос в React, отправить его в бэкенд и получить результаты на фронтенде?
В настоящее время у меня есть очень хакерский способ сделать это:
- Я посылаю (используя axios) город, который пользователь вводит в React, в REST API, который я построил на Django.
- Бэкенд запрашивает OpenWeatherMap API с городом, который вводит пользователь, и отправляет данные, полученные от OpenWeatherMaps, обратно в мой API.
- После этого фронтенд использует GET-запрос к моему API, чтобы показать информацию пользователю.
Я почти уверен, что это неправильный способ сделать это, но я не смог найти никаких других вопросов по этому поводу, и я довольно новичок в веб-разработке.
Первые два шага в порядке. Вместо шага 3. Верните ответ от OpenWeather в качестве ответа на POST-запрос из шага 1. и разрешите его в своем коде React.
По второй мысли и для того, чтобы соответствовать рекомендациям REST:
- используйте GET для вызова вашего API с указанным пользователем названием города (POST обычно вызывается для создания нового ресурса - это просто условность)
- внутри вашего API вызовите OpenWeatherMap API с названием города
- верните результат в ваше приложение React как ответ на GET из пункта 1.
Подробнее о руководящих принципах REST API: https://restfulapi.net/