2016-12-08 13 views
0

私はローカルのREST APIを持っていますが、私は実際にPOSTを扱っています。リモートREST APIを呼び出して結果を返すノードREST APIを作成します。

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

はので、私のフロントエンドは、サーバーのparamsと私のエンドポイントに当たったとき、リモートサーバー(サードパーティのAPI)にそれらを掲示し、元のPOSTに結果を返します。

私はブルーバードは、興亜、エクスプレス、Axiosを見てみましたが、私はそれを行うための合理的な方法や例を見つけるためにまともな検索語を見つけるように見えることはできません。

+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を公開したくない企業と同様のシナリオを持つことができるのでこれが良いと感じました – cmdv

+0

これはプロキシ、 [同じオリジンポリシー](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)のため、多くの場合、フロントエンドで実装することさえできません。あなたはこのアプローチでうまくいくはずです。 – Timo

+0

ああ、私は覚えています、あなたは多くのコルズの問題を抱えることができます。私はフロントエンドから直接サードパーティのAPIを打つことを意味しました。つまり、twitter apiやその他のテストapiのようなものです。あなたが与えた例では、APIを特定のエンドポイントに分割できますか?これはおそらくフレームワークが助けになる場所でしょうか? – cmdv

関連する問題