使用LoopBack作为具有响应重组的API代理

时间:2014-07-18 19:25:08

标签: javascript rest loopbackjs

我必须从非RESTful API访问数据,并尝试构建一个新的Web服务来访问原始API并将其重新公开为RESTful 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));
});

理想情况下,我希望将此POST公开为GET /api/debtors/{clientId} clientIdPARAMETERNAMEmodel.create电话中的{{1}}。

1 个答案:

答案 0 :(得分:1)

  1. 您可以进一步参数化主体以进行操作映射,如下所示:

    body:{ " DLLNAME":" WEB_DLLS.GET_AGED&#34 ;, " FUNCTIONNAME":" M_GET_AGED&#34 ;, "参数名称":" {参数名称}" }

  2. 您可以更改create remoting元数据或将create包装到另一个方法并通过GET公开它。

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

  3. 请参阅http://docs.strongloop.com/display/LB/Remote+methods+and+hooks#Remotemethodsandhooks-Definingremotemethods