Разница в вызовах API в производстве и разработке?
Предыстория: У меня есть бэкенд сервер личного проекта, который делает вызов к стороннему API. Я сделал этот вызов на своем собственном сервере вместо React Front-End, чтобы избежать ошибки CORS.
Проблема: Когда бэкенд находится в разработке, и вызов API выполнен, он возвращает корректные данные. Но после размещения API возвращает некорректные данные.
Под неправильными данными я подразумеваю, что ответ имеет тот же формат, но основное требуемое содержимое (которое является URL) неверно.
.
Я хотел бы узнать больше о том, в чем разница между двумя вызовами API, которые выполняет мой сервер, один на localhost, а другой на Production.
Вот какой правильный ответ я получаю в разработке
{
status: 200,
message: "success",
meta: "https://SOME_URL.com"
}
Вот как выглядит неправильный ответ, который я получаю в Development
{
status: 200,
message: "success",
meta: "https://SOM_OTHER_URL.com"
}
Обратите внимание, что SOME_OTHER_URL фактически не существует и выдает 404, в то время как SOME_URL является правильным Доменом.
Что я еще выяснил:
- I have used different hosting services, Heroku and Vercel, so, the Host is probably not the problem here.
- I have created the backend in two Tech Stacks, Django and Node - Express, so that also checks out, as both return same incorrect Data in Production, whereas, both return Correct Data in Development.
Итак, я хотел узнать о том, какие данные посылают вызовы API в виде заголовков запросов и т.д. и в чем разница между ними при выполнении в Development и Production.
Вот экспресс-код:
const express = require('express');
const router = express.Router();
const axios = require('axios');
router.post('/', async (req, res) => {
try{
axios.post('THIRD_PARTY_API', {
id: req.body.id
})
.then(resp => {
console.timeLog
res.status(200).json({
'success': true,
'body': JSON.stringify(resp.data)
})
})
.catch(err => {
console.error("Error: ", err);
return res.status(400).json("Server Error!");
})
} catch(error) {
console.error(error);
return res.status(500).json("Server Error!");
}
});
module.exports = router;
Это обеспечивает правильные данные при использовании в localhost, но не в Production.