2016-12-08 2 views
0

У меня есть локальный REST API, хотя я действительно имею дело с POST.Создать REST API узла, который вызывает удаленный REST API и возвращает результаты

mysite/api/ -> http://remoteSite.com/api/ 

так, когда мой передний конец попадает мой конечную точку с PARAMS сервер затем отправлять те на удаленный сервер (3 партии API) и возвращает результаты первоначальной процедуры POST.

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

+0

Что вы используете для своего локального API? Вы пишете удаленный API или вызываете сторонние конечные точки? В любом случае вы можете использовать Superagent (https://visionmedia.github.io/superagent/) для связи между вашим локальным и удаленным. –

+0

Это сторонний API. Я не выбрал, поскольку предположил, что он будет использовать часть промежуточного программного обеспечения, и это будет специфично для моего выбора. Я буду искать суперагентные примеры. – cmdv

ответ

1

Вы ищете прокси.


Если вы должны использовать NodeJS, вы можете, например, смотреть в the node-http-proxy library:

var http = require('http'), 
    httpProxy = require('http-proxy'); 
// 
// Create your proxy server and set the target in the options. 
// 
httpProxy.createProxyServer({target:'http://localhost:9000'}).listen(8000); 

// 
// Create your target server 
// 
http.createServer(function (req, res) { 
    res.writeHead(200, { 'Content-Type': 'text/plain' }); 
    res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2)); 
    res.end(); 
}).listen(9000); 

Source

Здесь LOCALHOST порт 8000 действует как прокси-сервер для LOCALHOST порта 9000. Вы хотите чтобы вместо этого указать на удаленный сервер.


Вы также можете посмотреть в Apache web server или Nginx альтернативных способов настроить прокси-сервер, возможно, с меньшим усилием и большей стабильности.

+0

Я собирался придерживаться этого в узле, поскольку я просто свободно Javascript, я был не уверен, что делать это через прокси-сервер. Раньше я делал это из интерфейса, но хотел узнать больше бэкэнд-методов и серверов и считал, что это будет хорошо, поскольку компании могут иметь похожие сценарии, в которых они не хотят раскрывать внутренний api's – cmdv

+0

. Это распространенный прецедент для прокси, и из-за [той же политики происхождения] (https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) во многих случаях она не может быть реализована в интерфейсе. Вы должны быть хорошо с этим подходом. – Timo

+0

ах теперь я помню, у вас может быть много проблем с кругами. Я имел в виду, что я попал в сторонний API напрямую из интерфейса. т.е. такие вещи, как twitter api и другое тестирование apis. В приведенном примере можно разделить API на конкретные конечные точки? это, вероятно, поможет рамочка? – cmdv

Смежные вопросы