2014-07-18 23 views
-1

我必須從非RESTful API訪問數據,並試圖構建訪問原始API並將其重新公開爲RESTful API的新Web服務。使用LoopBack作爲具有響應重構的API代理

我想用LoopBack來實現這一點。

到目前爲止,我有:

var loopback = require("loopback"); 

var ds = loopback.createDataSource({ 
    connector: require("loopback-connector-rest"), 
    debug: false, 
    operations: [ 
    { 
     "template": { 
     "method": "POST", 
     "url": "http://192.168.1.20/OLD_API/Web_SVC.ASMX/CALLFUNC", 
     "headers": { 
      "accepts": "application/json", 
      "content-type": "application/json" 
     }, 
     "body": "{body}" 
     }, 
     "functions": { 
     "create": ["body"] 
     } 
    } 
    ]}); 

var model = ds.createModel('debtor'); 

model.create({ "DLLNAME":"WEB_DLLS.GET_AGED", "FUNCTIONNAME":"M_GET_AGED", "PARAMETERNAME":"1234" },function (err, result, response) { 
    console.log(JSON.parse(result.d)); 
}); 

理想我想揭露這個POSTGET/api/debtors/{clientId}其中clientId是在model.create呼叫PARAMETERNAME

回答

1
  1. 可以進一步參數化機構操作映射如下:

    體:{ 「DLLNAME」: 「WEB_DLLS.GET_AGED」, 「FUNCTIONNAME」: 「M_GET_AGED」, 「參數名稱」 :「{parameterName}」 }

  2. 您可以更改創建遠程元數據或將創建包裝到另一個方法並通過GET公開它。

    model.createOverGet = function(param,cb){this.create(...,cb); }

請參閱http://docs.strongloop.com/display/LB/Remote+methods+and+hooks#Remotemethodsandhooks-Definingremotemethods

+0

'model.createOverGet'是否指代改變「創建遠程處理元數據」?我可以在'datasources.json'文件中做到這一點嗎?如果不是,我如何正確地通過REST公開模型?另外,是否有方法在再次公開它之前解析原始API的響應? – max