使用Hyperledger Fabric Composer我创建了一个简单的应用程序。
但是,当我尝试与应用程序(在http://localhost:4200上提供)进行交互时,我不断收到以下错误消息:
Error: 404 - Could not find API route. Please check your available APIs.
出现此错误消息无论我想做什么(创建新的参与者/资产,提交交易,...)
我检查了错误消息是否与我创建的应用程序有关。所以我还部署了我从互联网上下载的另一个应用程序。同样,当我尝试与UI交互时出现相同的错误消息。
**********************************************************
这是长篇故事:
在我编写代码之后,我采取了通常的步骤来获取Angular Web App:
在应用程序的文件夹(“my_app”)中,我创建了一个名为“dist”的文件夹。在文件夹“dist”中,我运行了以下命令:
composer archive create -t dir -n ../
composer network install --archiveFile [email protected] --card PeerAdmin@hlfv1
composer network start --networkName my_app --networkVersion 0.0.1 --card PeerAdmin@hlfv1 --networkAdmin admin --networkAdminEnrollSecret adminpw
composer card import -f admin@my_app.card
//start rest-server:
composer-rest-server
yo hyperledger-composer
在最后一个命令之后(我从菜单中)选择了基于业务网络“my_app”创建“角度”应用程序的选项。
创建了包含角度应用程序的文件夹(文件夹名称:“angular”)。
在文件夹“angular”中,我运行了以下命令:
ng serve
创建了命令行上的一些输出,其中包括以下行:
** NG Live Development Server is running on http://localhost:4200 **
当我去http://localhost:4200时,一切都很好看。
但是,每当我点击UI中的任何按钮时(例如,在“添加参与者”上),我都会收到以下错误消息:
Error: 404 - Could not find API route. Please check your available APIs.
我找到了解决方案:
运用
"npm start"
代替
"ng serve"
避免这个问题。
仅供参考。有一个tutorial显示使用Composer Angular发生器,包括npm start
sequence。
我有同样的问题,得到了相同的错误messgae。所以我使用yo hyperledger-composer工具重新创建了角度应用程序,但这一次不是选择“连接到现有REST API”,而是选择“创建新的REST API”,然后在localhost:4200上连接正常,而其余服务器仍在运行港口3000。
我刚刚使用Composer CLI工具的0.20版本遇到了这个问题。我通过编辑/package.json文件中的以下内容解决了这个问题:
“start”条目最初的主机值为“0.0.0.0” -
"scripts": {
"ng": "ng",
"build": "ng build",
"prepack": "npm run build",
"start": "ng serve --proxy-config proxy.conf.js --host 0.0.0.0",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test --watch false",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"
}
我改为“localhost” -
"scripts": {
"ng": "ng",
"build": "ng build",
"prepack": "npm run build",
"start": "ng serve --proxy-config proxy.conf.js --host localhost",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test --watch false",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"
}
使用新设置重新启动Angular应用程序后,一切正常。