我有一个PASOE业务类实体设置作为Web服务。我正在尝试确定如何创建一个允许我传入散列令牌的自定义标头。这是我需要升级到11.7.4 DOH(OpenEdge.Web.DataObject.DataObjectHandler)的东西吗?或者这是我只是添加到类中定义的方法的东西?抱歉,因为缺乏说明我情况的代码,但我不知道从哪里开始。
如果您正在使用Web传输的业务实体,那么您正在使用DOH,以下适用。如果您正在使用休息运输,那么您不使用DOH,并且您的选择更受限制。
在https://documentation.progress.com/output/oe117sp/index.html#page/gssp4/openedge-data-object-handler.html的DOH上有文档 - 它是11.7.4,但主要适用于所有版本(即11.6.3+)。这描述了JSON映射文件,您需要创建一个覆盖默认生成的映射文件。
如果要对所有操作使用标题值,则可能需要使用DOH事件之一。在https://github.com/PeterJudge-PSC/http_samples/blob/master/web_handler/data_object_handler/DOHEventHandler.cls有一个事件处理程序的例子;您将需要使用new DOHEventHandler()
在会话启动过程中启动该处理程序(编写代码的方式是它使自己成为单例)。
您现在可以为运行业务逻辑之前触发的Invoking
事件添加处理代码。
如果要将标头值传递到业务逻辑中,则需要执行此操作
<service>.gen
复制到同一文件夹中的<service.map>
。 “gen”文件生成并将被工具覆盖arg
条目。这必须与BE方法的参数顺序相同。 { "ablName": "<parameter_name>",
"ablType": "CHARACTER",
"ioMode": "INPUT",
"msgElem": {"type": "HEADER", "name": "<http-header-name>"}
}