直接从数据源创建API

时间:2015-02-20 17:24:43

标签: mysql node.js rest loopbackjs strongloop

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

事实上,我能够使用strongloop连接mysql。但是,我不得不创造一种叫做“模型”的东西,我做到了。但是,这就像从头开始创建一个新模型并用它来持久化数据源。

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

这可能吗?

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

由于

3 个答案:

答案 0 :(得分:2)

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

我唯一真正熟悉的是postgrest。

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

答案 1 :(得分: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`

  });
});
祝你好运!

答案 2 :(得分:0)

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

它比这更容易,因为你可以通过StrongLoop Arc(GUI)完成所有工作。我总是喜欢cli 但是要对它进行一般性的观察,如果你对这个主题不太了解,有时最好从GUI开始。

反正 首先,您需要先连接数据源(先安装驱动程序)。 之后,通过StrongLoop Arc,你可以做到"发现模型"选择你的桌子(照顾运行弧并每次重新启动 你得到一个新的模型),那就是你获得了一个基于数据源的API (用于测试去探险家)。

我之前通常描述过主要任务,但如果有人需要更多细节,请告诉我。希望这对任何想要做的人都有帮助 类似的东西

感谢有兴趣的人。