LoopBack JSON Return 不一致

LoopBack JSON Return Inconsistency

我们正在为我们的 REST API 使用 LoopBack。我们注意到来自 REST 端点的 return JSON 不一致。我们可以编码,但最好知道如何在我们的代码中正确解决它。问题是,当标准 REST 端点 returns JSON 时,没有 JSON 对象 ID。但是,当我们从直接执行的查询中 return JSON 时,我们必须指定一个对象 ID。这是从标准 LoopBack REST 'get' 调用中 return 编辑的 JSON:

当我们 return 我们自己的 JSON 时,它似乎必须有一个 ID:

下面是我们如何 return 创建我们自己的 JSON (TypeScript):

    var sql: string = "SELECT * FROM as_trialbalancelist"

    // Execute the SQL
    dbConn.query(sql, function (error: number, rows: any, fields: any) {

        // Check for errors 
        if (error) {
            console.log('ERROR: ' + error);
            // TODO: Need better error return.
            // res.send(error);
            return;
        }

        callback(null, rows);

    });

Dataview.remoteMethod(
    'trialbalance',
    {
        returns: { arg: 'data' },
        http: { verb: 'get' }
    }

    );

当我们删除 "returns: { arg: 'data' }" 时会导致错误。空白 'arg' 也会导致问题。

您应该可以将此用于您的 returns 属性:

returns: {type: 'object', root: true},

基本上说类型将是对象,它将是根,意味着不需要 id。不确定你是否需要在你的情况下使用 type: 'array',因为你正在 returning 一个数组,我还没有 return 来自自定义远程方法的数组。