il problema:Ember CLI con i proxy multipli
Ho un'applicazione Ember CLI che consumerà più API, che ho bisogno di proxy per in modalità di sviluppo.
Background:
Ho un vecchie API che espone servizi a /api
in esecuzione sulla mia macchina di sviluppo locale a localhost:3000
Ho una nuova API che espone servizi a /myapp/api/v1
. Questi servizi sono stati recentemente estratti dall'app legacy e comprendono la maggior parte dei servizi applicativi utilizzati dall'app ember.
L'app embra utilizza il numero di base /myapp
, poiché viene distribuito in una sottodirectory.
Ho generato due http-proxy con ember generate http-proxy
. Sono situate a /server/proxies/api.js
e server/proxies/myapp/api/v1.js
api.js
var proxyPath = '/api';
module.exports = function(app) {
var proxy = require('http-proxy').createProxyServer({});
proxy.on('error', function(err, req) {
console.error(err, req.url);
});
app.use(proxyPath, function(req, res, next){
// include root path in proxied request
req.url = proxyPath + '/' + req.url;
proxy.web(req, res, { target: 'http://localhost:3000' });
});
};
myapp/api/v1.js
var proxyPath = 'myapp/api/v1';
module.exports = function(app) {
var proxy = require('http-proxy').createProxyServer({});
proxy.on('error', function(err, req) {
console.error(err, req.url);
});
app.use(proxyPath, function(req, res, next){
req.url = proxyPath + '/' + req.url;
proxy.web(req, res, { target: 'http://localhost:4100' });
});
};
Il primo proxy, a/api, sembra funzionare, la seconda API, to/myapp/api/v1/tutto ciò che non riesce.
Non sembra essere utilizzato o considerato. Quando corro, ad esempio un POST a myapp/api/v1/sessions, dice solo che non può POST. Quando metto il debugger sulle funzioni proxy.on e app.use, non vengono mai colpiti.
Dove sto andando storto qui?
FYI, non ho postato la generosità, così sarà fino a @Asherlc a aggiudicarlo :) – DVG