2017-03-28 4 views
0

Im Angular Seed projectを使用し、別のポートで実行されているバックエンドサービスのためのプロキシをapi要求用に設定しようとしています。Angular2/Angularシードhttpプロキシミドルウェアプロキシapi要求

私のコードは、これまで:私は、これは、HTTPプロキシ・ミドルウェアを使用して作業を取得するように見える傾けるのに

/* Add proxy middleware */ 
this.PROXY_MIDDLEWARE = [ 
    require('http-proxy-middleware')({ 
    ws: false, 
    target: 'http://localhost:5555', 
    router: { 
     // when request.headers.host == 'dev.localhost:3000', 
     // override target 'http://www.example.org' to 'http://localhost:8000' 
     //'http://localhost:5555/basepath/api' : 'http://localhost:7000/api' 
    } 
    }) 
]; 

は基本的に私は何をする必要があるかhttp://localhost:7000/apihttp://localhost:5555/basepath/apiに一致する任意のAPIの経路です。私はもともとプロキシミドルウェアを使って作業していましたが、リクエストヘッダーを変更する必要があるため、http-proxy-middlewareでしかできないように見えました。

答えて

0

この作業を行うのに少し時間を費やしましたが、これがコンストラクタ内のproject.config.tsに追加されました。

/* Add proxy middleware */ 
    this.PROXY_MIDDLEWARE = [ 
     require('http-proxy-middleware')(
     '/basepath/api', { 
     ws: false, 
     onProxyReq: this.onProxyReq, 
     target: 'http://localhost:7000', 
     pathRewrite: { 
      '^/basepath/api' : '/api' 
     } 
     }) 
    ]; 

そして、これは私は、コンストラクタの下に含まれる機能は、プロキシされているすべての要求にヘッダを追加することです

onProxyReq(proxyReq: any , req: any, res: any) { 
    // add custom headers to request 
    proxyReq.setHeader('header_name', 'value'); 
}