2015-12-15 3 views
-1

Я хочу использовать loopback для «среднего человека» для соединения между двумя разными api (server1 и server2). Когда я передаю электронное письмо пользователю этого «среднего человека», он будет проверять сервер 1, и если этот сервер вернет значение true, тогда «средний человек» получит все данные с сервера 2, сохраненные на сервере 1.Как создать loopback внешний CRUD?

Может ли кто-нибудь помочь мне в этом? Я попытался выполнить петлевую документацию, но я не мог получить то, что хочу, я что-то упустил?

ответ

0

Так что фактическая реализация на самом деле не связана с фреймворком Loopback.js. Это может быть реализовано в любом коде Node.js.

И на самом деле ваше описание выше это правильные шаги, чтобы сделать это с помощью простого запроса HTTP на сервер 1 и 2

Например, используя 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... */ }); 
     }); 
    } 
}); 
+0

Но мне нужно использовать обратную петлю для этого. можете ли вы посоветовать мне, как использовать его в loopback? –

0

Предполагая, что вы создали две источники данных, которые требуют ваших внешних поставщиков API в соответствии с моим ответом на your related question - для этого примера, нужно будет следующие вызовы:

Server1 источник данных:

  • checkEmail // Метод GET, возвращает true или false
  • save // Метод POST, возвращает true или false

Сервер2 DataSource:

  • getDetails // GET или POST метод возвращает контактные данные для адреса электронной почты

Вы также должны были бы петлевое модель с соответствующим способом в качестве точки входа , В качестве примера можно вызвать его Contact, с помощью удаленного метода, который называется store, принимая параметр электронной почты. Этот код будет делать всю работу:

Contact.store = function(email, cb) { 
    var server1 = Contact.app.dataSources.Server1; 
    var server2 = Contact.app.dataSources.Server2; 

    server1.checkEmail(email, function(validated) { 
     if(validated) { 
      server2.getDetails(email, function(details) { 
       if(details) { 
        server1.save(details, function(success) { 
         if(success) { 
          cb(null, details); 
         } 
        }) 
       } 
      }) 
     } 

    }) 
} 

(вы можете promisify все выше для более чистого кода)

+0

привет conradj, я все еще путаю с этим путем, у вас есть какой-нибудь пример, чтобы показать мне? или вы могли бы мне посоветовать, как это сделать? –

+0

@ yongpin было бы проще дать вам конкретную помощь, основанную на ваших потребностях. Можете ли вы задать больше информации в своем вопросе о внешних API-интерфейсах, которые вы пытаетесь использовать? Кроме того, вы можете опубликовать то, что вы сделали до сих пор, и какие ошибки или проблемы у вас есть? – conradj

Смежные вопросы