使用 composer-rest-server 时是否需要在模型文件 (.cto) 中定义事件?

Is event definition in model file (.cto) necessary when using composer-rest-server ?

如果我想为 Hyperledger Fabric Composer 业务网络开发 node.js 应用程序,则有必要定义(在模型文件中)每当交易发生时发出的事件。否则,node.js 应用程序不是 "informed" 那些交易(参见 https://hyperledger.github.io/composer/latest/business-network/publishing-events.html)。

定义事件(在模型文件中......并在各自的事务处理器函数中发出它们)使得 node.js 应用程序可以订阅这些事件(因此被告知事务)正在发生。)

至此我明白了。

我的问题如下:

当我使用 composer rest 服务器(即自动生成的 node.js 应用程序)而不是开发我的 "own" node.js 应用程序时,我是否仍然需要为模型文件 (.cto) 中定义的事务? 或者这是没有必要的,因为 composer rest 服务器根本不使用这些事件?

您仍然需要在您的模型中定义事件,然后将它们发布到您的事务代码中(然后从客户端使用(订阅)它们 - 无论是 composer-client 还是 websockets 等。所以无论您是否重新使用 REST API、Composer 客户端 API 甚至 CLI。

因此,如果您 POST 来自您的 REST 客户端(例如浏览器)的事务 - 将其发送到 REST 服务器 - 您必须已经定义了一个事件(在您的模型中)并且此外,您的事务逻辑必须发出该事件 - 任何听众都可以处理它。