我想使用loopback成为"中间人"连接两个不同的api(server1和server2)。当我将用户的电子邮件传递给此"中间人"时,它将检查服务器1,如果该服务器返回true,那么"中间人"将从服务器2获取所有数据保存到服务器1。
有人可以指导我如何做到这一点吗?我试图遵循环回文档,但我无法得到我想要的东西,我错过了什么?
答案 0 :(得分:0)
所以实际的实现与Loopback.js框架并没有关系。这可以在任何Node.js代码中实现。
实际上,上面的描述是使用对服务器1和2的简单HTTP请求来执行此操作的正确步骤
例如使用request 模块此代码显示中间人的伪代码。
const request = require('request');
// 1. Call Server 1
request('http://server1.com/api/message', function (err, res, body) {
// 2. Check body message is true
if (body.message === true) {
// 3. Get data from Server 2
request('http://server2.com/api/get', function (err, res, body) {
// 4. Save data to Server 1
request({
url: 'http://server1.com/api/save',
method: "POST",
json: requestData },
function (err, res body) { /* process response here... */ });
});
}
});
答案 1 :(得分:0)
假设您已根据我对your related question的回答设置了两个调用外部API提供程序的数据源 - 对于此示例,您将需要以下调用:
Server1数据源:
CQ.User.getCurrentUser()
// GET方法,返回true或false checkEmail
// POST方法,返回true或false Server2数据源:
save
// GET或POST方法,返回电子邮件地址的详细联系方式您还需要一个具有适当方法的Loopback模型作为您的入口点。对于该示例,我们使用名为getDetails
的远程方法将其称为Contact,并接收email参数。这段代码可以完成所有工作:
store
(你可以宣传所有上述更清洁的代码)