我的目标是创建一个路由,将请求代理到远程 API 的特定路径。我无法使此路由匹配 GET 请求。POST 请求匹配,调用通过。例如,从浏览器到 /api/document 的 POST 请求成功地代理到目标。不过,Hapi 使用 404 响应 GET /api/document。我可以为方法键创建两条具有不同值的相同路由,但这似乎并不干燥。
server.route({
path: '/api/{path*}',
method: '*',
config: {
handler: {
proxy: {
passThrough: true,
mapUri: function (request, callback) {
var baseUri = 'https://remote/services/v1';
var resourceUri = request.path.replace('/api', '');
var destinationUri = baseUri + resourceUri;
server.log('Proxying to: ' + destinationUri);
callback(null, destinationUri);
}
}
}
}
});
server.route({
method: 'GET',
path: '/{path*}',
handler: {
file: '../build/index.html'
}
});