0

我必须从非 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

4

1 回答 1

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

    正文:{“DLLNAME”:“WEB_DLLS.GET_AGED”,“FUNCTIONNAME”:“M_GET_AGED”,“PARAMETERNAME”:“{parameterName}”}

  2. 您要么更改创建远程处理元数据,要么将创建包装到另一个方法并通过 GET 公开它。

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

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

于 2014-07-19T05:00:03.573 回答