【问题标题】:Using Loopback datasources & models without loopback使用没有环回的环回数据源和模型
【发布时间】:2016-03-24 10:03:35
【问题描述】:

我将loopback 的数据源和模型设想为使用 API 的有用工具,而不仅仅是自动创建 REST API。

假装我正在使用 Spotify 的 API。我想要一个在 Spotify 上查找用户信息的命令行应用程序。我可以写loopback 模型来消费/v1/albums

我希望我可以创建一个Album 模型并像Album.find('Thriller'); 一样使用它。

想要的是创建一个 REST API。我只是想要一种更好的语言来使用其他人的 API,例如 FacebookInstagram

【问题讨论】:

  • 基于您的更新,以及您“不想...创建 REST API”的声明,那么我认为 LoopBack 不是一个好的选择。它完全致力于创建 REST API。

标签: node.js loopbackjs strongloop


【解决方案1】:

LoopBack 模型只是一个配置文件和模型文件中的函数集合。所有端点都是由 LoopBack 自己生成的,因此它们本身并不是很有帮助。也就是说,您可以使用 explorer component(使用脚手架 CLI 时默认安装:slc loopback)为您的每个模型生成一个 swagger 规范。

只需启动您的 LoopBack 应用程序,然后导航到:

http://localhost:3000/explorer/resources/MyModels

然后,您可以在任何支持该标准的框架中使用 swagger 规范。

【讨论】:

  • 我有兴趣使用这些模型来使用 api 而不是创建它们。
  • 您可能需要提供更多信息才能了解您的用例。 LoopBack 是 API 框架,模型只是 API 的入口点,在 LoopBack 之外使用“模型”实际上没有任何意义,因为模型只是一个配置文件。
【解决方案2】:

一种好方法是使用他们的 rest-connector,它允许您将请求和响应调用模板化到外部 API,对返回的数据使用模型验证,然后允许您将新内容持久保存到数据库.

【讨论】:

  • 这个答案确实提供了一个正确的解决方案,环回休息连接器允许使用外部 API。为什么这被否决了?
【解决方案3】:

Loopback 有non-database connectors 的概念,包括REST connector。来自文档:

LoopBack 支持许多连接到后端系统的连接器 数据库。

这些类型的连接器通常根据具体情况实现特定的方法 在底层系统上。例如,REST 连接器委托 在 Push 连接器与 iOS 集成时调用 REST API 和 Android 推送通知服务。

这是改编自 Spotify 的文档(虽然我没有尝试过):

datasources.json

Album": {
  "name": "spotify",
  "connector": "rest",
  "debug": false,
  "options": {
    "headers": {
      "accept": "application/json",
      "content-type": "application/json"
    },
    "strictSSL": false
  },
  "operations": [
    {
      "template": {
        "method": "GET",
        "url": "https://api.spotify.com/v1/albums/",
        "query": {
          "album": "{album}"
        },
        "options": {
          "strictSSL": true,
          "useQuerystring": true
        }
      },
      "functions": {
        "find": ["album"]
      }
    }
  ]
}

然后您可以使用以下代码从代码中调用此 api:

app.dataSources.Album.find('thriller', processResponse);

【讨论】:

  • 可以在不附加到应用程序的情况下使用数据源吗?
  • @Breedly 你所说的“应用”是什么意思
  • 如果没有 LoopBack 应用程序,您将无法拥有 LoopBack 数据源...我认为您要做的是将数据源“ORM”层与 LoopBack 分开,而这并没有任何意义。哪有这回事。上面的代码是一个LoopBack数据源的配置,它本身并不存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 1970-01-01
  • 2015-03-21
  • 2016-06-26
  • 2017-03-10
  • 1970-01-01
相关资源
最近更新 更多