将REST-API与入门指南一起使用会返回500错误

时间:2017-02-07 10:55:55

标签: loopbackjs hyperledger-composer

按照https://fabric-composer.github.io/start/getting-started-rest-api.html的说明,使用

测试生成的api
curl -X GET --header "Accept: application/json" "http://0.0.0.0:3000/api/net.biz.digitalPropertyNetwork.LandTitle"

生成以下错误

 {
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "No registered namespace for type net_biz_digitalPropertyNetwork_LandTitle",
    "stack": "Error: No registered namespace for type net_biz_digitalPropertyNetwork_LandTitle\n    at ModelManager.getType (/Users/matt/Documents/workspaces/blockchain/src/github.com/fabric-composer/sample-applications/node_modules/composer-common/lib/modelmanager.js:265:23)\n    at ensureConnected.then (/Users/matt/Documents/workspaces/blockchain/src/github.com/fabric-composer/sample-applications/node_modules/composer-loopback-connector/lib/businessnetworkconnector.js:198:53)\n    at process._tickDomainCallback (internal/process/next_tick.js:129:7)"
  }
}

我看到启动脚本为下划线交换了点,是否也需要其他地方?

// this is required because LoopBack doesn't like dots in model schema names
    modelSchema.name = modelSchema.plural.replace(/\./g, '_');

作为参考,以下是我的loopback包的节点依赖性

"dependencies": {
    "composer-loopback-connector": "^0.4.0",
    "compression": "^1.0.3",
    "cors": "^2.5.2",
    "helmet": "^1.3.0",
    "loopback": "^2.22.0",
    "loopback-boot": "^2.6.5",
    "loopback-component-explorer": "^2.4.0",
    "loopback-connector-composer": "^0.4.1",
    "loopback-datasource-juggler": "^2.39.0",
    "serve-favicon": "^2.0.1",
    "strong-error-handler": "^1.0.1"
  }

1 个答案:

答案 0 :(得分:1)

是的,您对引导脚本交换下划线的点是正确的。这是因为环回不接受模型名称中的点,因此引导脚本将它们交换出来,连接器在环回应用程序调用它时会考虑到这一点。

这是原始连接器的一个问题,它在npm中为composer-connector-loopback。该版本尚未删除,但应该很快就会删除。

它已被重命名为使其与其他环回连接器保持一致,并且在npm中也为loopback-connector-composer

我将提出一个问题,以获取您提到的更新的入门指南,如果您可以切换到使用其他连接器,那么应​​该解决问题。 HTH。