Я хотел бы перехватить асинхронный вызов, сделанный по запросу.
Вызов, который я хочу перехватить, это "https://api.ap.org/v2/yada/yada".
Я хочу перехватить этот сторонний вызов api.ap.org и перенаправить его на другой сервис, скажем, 127.0.0.1:3001.
Я также хотел бы добавить заголовки во время этого процесса перехвата.
Я знаю, как перехватывать все вызовы, сделанные по экспресс-маршруту js через http-proxy, но это не перехватывает вызовы, сделанные внутри самого nodejs.
router.get('/', function(req, res, next) {
request("https://api.ap.org/v2/yada/yada", {}, (err, data) => {
console.log('---- call made')
console.log(data);
});
res.render('index', { title: 'Express' });
});
ОБНОВЛЕНИЕ - от Estus
function patchedRequest(url, options, ...args) {
let newUrl = 'https://www.google.com/' // replace url with another one;
console.log('------ args');
console.log(url);
console.log(options);
if(url.match(/api\.ap\.org/).length){
options = {};
newUrl = 'http://127.0.0.1:3000/api'
}
return originalRequest(newUrl, options, ...args);
}
- Это позволяет мне перехватывать вызов стороннему API и отправлять ему услугу по моему выбору.
Спасибо, Эстус!