【问题标题】:Create an API directly from a data source直接从数据源创建 API
【发布时间】:2015-04-22 11:18:36
【问题描述】:

我需要创建自己的 REST API。 我刚刚看到 strongloop 和 loopback,我认为这对我的项目来说是完美的。

事实上,我可以使用 strongloop 连接 mysql。然而,我必须创建一个叫做“模型”的东西,我做到了。但是,这就像从头开始创建一个新模型并将其用于在数据源上持久化。

相反,我一直在寻找的是直接从数据库上的模型中获取 REST API。 我的意思是从数据库中的每个表中获取模型,然后将它们设置为 Web 服务。

这可能吗?

我是这些技术的新手,虽然我认为这是一个有趣的问题。

谢谢

【问题讨论】:

  • 好问题,顺便说一句,我希望其他人对此表示赞同/评论!
  • 谢谢,非常感谢

标签: mysql node.js rest loopbackjs strongloop


【解决方案1】:

我不确定 Node 工具可以满足您的要求,但在其他语言/数据库中您有一些选择!

我唯一真正熟悉的是 postgrest。

postgrest:您将数据导入 Postgres 数据库(类似于 MySQL),它会立即在您的表上生成一个 REST API。巴姆。完毕。我用过这个,非常棒。也可以直接部署在Heroku上。

【讨论】:

  • 听起来不错,尽管这意味着我必须进行迁移以更改当前指向数据库的多个功能。我以前从未对 PostgreSQL 做过,做起来可能并不难。但是,我想很多人正在从 PHP(MySQL 最常用的领域,不确定,但我认为)迁移到 Nodejs,所以在 MySQL 上也应该有一种方法可以做到这一点。如果它仍然是一个不错的解决方案,你将如何将它与 strongloop 联系起来?谢谢,感谢您的回答,如果我无法使用 MySQL 做到这一点,我会记住这是一个不错的选择。
【解决方案2】:

StrongLoop 实际上有一个"discovery" tool 就是为了这个目的!在该页面上阅读,但这是执行此操作的基本代码。只需将此代码放在/server/boot/ 内的文件中(文档对此有误,它必须在我提到的目录中)。当然,您需要根据您的用例对其进行定制:

var loopback = require('loopback');
var ds = loopback.createDataSource('mysql', {
  "host": "yourhost",
  "port": 1234,
  "database": "foobar",
  "username": "someuser",
  "password": "somepass"
});

// Discover and build models from a given table
ds.discoverAndBuildModels('PERSON', {visited: {}, associations: true},
function (err, models) {
  // Now we have a list of models keyed by the model name
  // You only need the rest of this if wanted to inspect what came in...

  // For example, you could find the first record from the table
  // and verify info or something.
  models.Person.findOne({}, function (err, person) {
    if(err) {
      // handle this if need be...
      console.error(err);
      return;
    }

    // Some code using `person`

  });
});

祝你好运!

【讨论】:

    【解决方案3】:

    我假设“发现工具”是找出数据中的模式、集群或其他任何东西。但跟随 @jakarella 的推荐让我更加深入。

    比这更容易,因为您可以通过 StrongLoop Arc (GUI) 完成所有操作。我总是喜欢cli 但是如果你对这个主题没有太多了解,有时最好从 GUI 开始。

    无论如何, 首先,您需要先连接数据源(之前安装驱动程序)。 之后,通过 StrongLoop Arc,您可以“发现模型”选择您的表(注意运行 Arc 并每次重新启动 你得到了一个新模型)就是这样,你得到了一个基于数据源的 API (用于测试转到资源管理器)。

    我之前大致描述了主要任务,但如果有人需要更多详细信息,请告诉我。希望这对其他想要做的人有所帮助 类似的东西

    感谢大家的关注。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 2021-09-18
      • 1970-01-01
      • 2018-10-22
      • 2019-12-21
      • 1970-01-01
      • 2016-09-13
      相关资源
      最近更新 更多