将 REST-API 与入门指南一起使用 returns 500 错误
Using the REST-API with the getting started guide returns 500 error
按照 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, '_');
作为参考,这是我的环回包的节点依赖关系
"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"
}
是的,关于引导脚本将点换成下划线的说法是正确的。这是由于 loopback 不接受模型名称中的点,因此引导脚本将它们换出,并且连接器在被 loopback 应用程序调用时会考虑到这一点。
这是 npm composer-connector-loopback
中原始连接器的问题。该版本尚未删除,但应该很快就会删除。
它已被重命名以使其与其他环回连接器保持一致,并且在 npm 中也作为 loopback-connector-composer
。
我会提出一个问题来更新您提到的 getting-started 指南,如果您可以切换到使用其他连接器,那么应该可以解决问题。 HTH.
按照 https://fabric-composer.github.io/start/getting-started-rest-api.html 中的说明,使用
测试生成的 apicurl -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, '_');
作为参考,这是我的环回包的节点依赖关系
"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"
}
是的,关于引导脚本将点换成下划线的说法是正确的。这是由于 loopback 不接受模型名称中的点,因此引导脚本将它们换出,并且连接器在被 loopback 应用程序调用时会考虑到这一点。
这是 npm composer-connector-loopback
中原始连接器的问题。该版本尚未删除,但应该很快就会删除。
它已被重命名以使其与其他环回连接器保持一致,并且在 npm 中也作为 loopback-connector-composer
。
我会提出一个问题来更新您提到的 getting-started 指南,如果您可以切换到使用其他连接器,那么应该可以解决问题。 HTH.