【问题标题】:Loopback.io and CouchDB connectorLoopback.io 和 CouchDB 连接器
【发布时间】:2015-07-01 18:00:48
【问题描述】:

我正在尝试探索为 Loopback.io 构建 CouchDB 连接器的机会。 我知道 CouchDB 有一个 REST 接口,但是 - 出于某种原因 - 当我将 Couch 本地服务器的 baseURL 放入 Loopback 中的 Rest 连接器时,我在 Couch 的请求中缺少一些标头时收到错误消息。 由于可以添加一些有用的功能来利用视图等,我正在探索 loopback-connector-couchdb 的创建。

那么简单的问题是:连接器需要实现哪些方法才能准确映射到 Loopback.io 为模型提供的标准 API 端点? 基本示例:

  1. POST /models (with payload body) --> 连接器的“创建”功能都很好
  2. DELETE /models/{id} --> 我收到一条错误消息,说没有实现 destroyAll 函数(正确),但改为实现了 destroy 函数......
  3. HEAD /models/{id}GET /models/{id}/exists 在调用的函数方面有什么区别?
  4. 我尝试通过 ID 验证在 CouchDB 中创建(成功)的模型是否存在,并使用GET /models/{id}/exists,而不是在连接器中调用函数“exists”,而是调用另一个名为“Count”的函数。
  5. 好像某些但不是所有功能都映射到连接器(注意,我没有使用连接器的DataAccessObject 属性,因为这似乎更多地用于附加方法,可以这么说......和其中一种方法确实有效!)

...我很困惑!

感谢您的指导。我正在尝试遵循这一点,但我无法轻松地将标准 API 端点映射到连接器的最小功能(例如,参见上面的第 2 点) Building a connector - Loopback.io documentation

【问题讨论】:

    标签: rest couchdb loopbackjs


    【解决方案1】:

    我建议使用 API Explorer 来找出您的端点。

    1. 通过slc loopback 创建一个示例 LoopBack 项目
    2. 通过slc loopback:model创建一些模型
    3. 通过slc run启动应用程序
    4. 浏览至localhost:3000/explorer

    在那里,您可以看到 LoopBack 自动生成的所有端点。就像您单击模型的 GET 端点一样,它会将查询显示为 GET /api/<modelname>

    【讨论】:

    • 嗨-谢谢,也许我还不清楚。我已经做到了这一点,实际上我正在尝试理解另外一件事......如果我将模型绑定到连接器,会发生如下奇怪的事情:API 中的 create 方法完全映射到 create 原型函数连接器,而 API 的“exists”端点并不完全映射到新创建的连接器的存在函数。
    • 当然也乐意分享连接器的测试NPM。
    • 你试过看源代码吗?您应该能够从现有连接器中找到示例。也许在这里的某个地方:github.com/strongloop/loopback-connector-mongodb/blob/master/…
    • 期待看到您的连接器。当你完成它或者如果你需要更多信息时让我知道,我会尽力给你一个答案。此外,如果您愿意,我们可以将您的连接器添加到我们的社区贡献中。见:github.com/strongloop-community?query=
    • 好的,我想我到了我认为问题所在的地方。让我们以 MongoDB 连接器为例。它有一个名为“exists”的原型函数。但是,如果我创建一个模型(“PersistedModel”类的派生类),它基本上具有文件“loopback-datasource-juggler/lib/dao.js”中的原型方法。在那里,函数“存在”实际上在真正的连接器中调用了函数“count”......因此连接器原型中存在的函数永远不会被调用(除非它以我看不到并且乐于接受的方式调用被引导)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多