【问题标题】:Get a custom JSON response from Loopback从 Loopback 获取自定义 JSON 响应
【发布时间】:2016-12-21 20:35:36
【问题描述】:

我使用 Loopback 制作了一个简单的 API。它工作正常,并从这个 URL 给出了下面的结果。 http://localhost:3000/api/CoffeeShops

[
  {
    "name": "Coffee shop 1",
    "city": "City one",
    "id": 1
  }
]

我需要将此 JSON 更改为此模板,通过使用 Loopback 中间件。

{
  "_embedded": {
    "CoffeeShops": [
      {
        "name": "Coffee shop 1",
        "city": "City one",
        "_links": {
          "self": {
            "href": "http://localhost:3000/CoffeeShops/1"
          },
          "CoffeeShop": {
            "href": "http://localhost:3000/CoffeeShops/1"
          }
        }
      }
   ]
   }
}

【问题讨论】:

    标签: json node.js loopbackjs hateoas loopback


    【解决方案1】:

    比中间件更好,您可以使用remote hook

    使用 afterRemote 挂钩 修改、记录或以其他方式使用远程方法的结果 在将其发送到远程客户。因为 afterRemote 钩子在远程方法执行后运行,它可以访问远程方法的结果,但不能修改输入参数。

    coffee-shop.js 中的以下代码可以解决问题

    CoffeeShop.afterRemote('find', function(ctx, output, next) {
      ctx.result = {
        _embedded: {
          CoffeeShops: [{
            name: output.name,
            city: output.city,
            _links: {
              self: {
                href: "http://localhost:3000/CoffeeShops/" + id
              },
              CoffeeShop: {
                href: "http://localhost:3000/CoffeeShops/" + id
              }
            }
          }]
        }
      };
      next();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 2022-06-28
      • 2017-04-10
      • 1970-01-01
      • 2017-03-24
      相关资源
      最近更新 更多