2017-12-18 111 views
5

Tôi đang sử dụng dịch vụ chuyển phát nhanh nơi tôi đã thực hiện các cuộc gọi API cho ứng dụng của mình.Cuộc gọi API proxy nhanh với cookie

Có proxy nào tôi có thể sử dụng để chuyển hướng cuộc gọi đến máy chủ dev của mình không?

dưới đây là mẫu nhanh mã của tôi

var express = require('express'); 
var app = express(); 
var path = require('path'); 
var cors = require('cors'); 


app.use(express.static(path.join(__dirname, 'public'))); 
app.use(express.static(path.join(__dirname, 'dist'))); 

app.get('/brand', function(req,res){ 
    res.send({"brand":"Cadillac","origin":"USA"}); 
}); 

Khi tôi chạy ứng dụng của tôi trong địa phương của API từ mã của tôi "http://localhost:3000/brand" nên chuyển hướng đến "http://www-dev.abc.com/brand"

Trước khi chuyển hướng tôi cũng cần phải thiết lập một cookie, vì API chỉ cung cấp dữ liệu khi có một cookie hợp lệ.

Có proxy nào tôi có thể sử dụng không? Bạn có thể cung cấp bất kỳ ví dụ nào không?

Trả lời

1

Nếu tôi hiểu bạn phải, sau đó yêu cầu của bạn danh sách trông giống như:

  1. tích hợp đơn giản với express.
  2. Chỉ ủy quyền một điểm cuối.
  3. Chỉ proxy trên môi trường địa phương.
  4. Khả năng đặt cookie cho yêu cầu proxy.

Mã số Ví dụ:

var express = require('express'); 
var app = express(); 
var path = require('path'); 
var proxy = require('express-http-proxy'); 

app.use(express.static(path.join(__dirname, 'public'))); 
app.use(express.static(path.join(__dirname, 'dist'))); 

if (process.env.NODE_ENV === 'production') { 
    app.get('/brand', function(req,res){ 
    res.send({"brand":"Cadillac","origin":"USA"}); 
    }); 
} else { 
    app.use('/brand', proxy('http://www-dev.abc.com/brand', { 
    proxyReqOptDecorator: function(proxyReqOpts, srcReq) { 
     proxyReqOpts.headers['cookie'] = 'cookie-string'; 
     return proxyReqOpts; 
    } 
    })); 
} 

app.listen(8000); 

Comments:

  • Đối với việc kiểm tra kiểu môi trường tôi đã sử dụng xây dựng process.env.NODE_ENV === 'production'
  • Các gói phần mềm tốt nhất cho yêu cầu của bạn là express-http-proxy, nhưng nếu bạn sẽ cần proxy đa ple endpoints, nó sẽ đau đớn. Kiểm tra http-proxy trong trường hợp này.
+0

Với express-http-proxy làm cách nào tôi có thể chuyển các tham số chuỗi truy vấn từ máy khách đến máy chủ express? – user804401

+0

Bạn có chức năng này từ hộp. – galkin

Các vấn đề liên quan