乐趣区

关于sap:给-SAP-BTP-创建的-Java-应用添加-Custom-Event-Handler-支持创建功能

productservice 文件夹下新建一个 handler 文件夹:

在该文件夹里新建一个 AdminService.java 文件:

此类当初解决针对 AdminService 的 Products 实体的 READ 和 CREATE 事件。

  • READ 操作只返回保留在内存中的所有实体。
  • CREATE 事件从 CQN 示意中提取无效负载并将其存储在内存中。

CDS 查问表示法 (CQN) 是 CAP 中用于针对服务运行查问的通用语言。它可用于与模型定义的服务进行通信,也可用于与数据库等近程服务通信。

事件处理程序应用以下 API,这些 API 可用于 CAP Java 中的服务提供者:

  1. 事件处理程序类必须实现标记接口,marker interface EventHandler 并将本人注册为 Spring Beans (@Component)。标记接口很重要,因为它使 CAP Java 运行时可能在所有 Spring Bean 中辨认这些类。
  2. 事件处理程序办法应用 @Before、@On 或 @After 正文注册。每个事件,例如实体创立,都会经验这三个阶段。每个阶段的语义略有不同。
  3. 正文 @ServiceName 指定所有事件处理程序办法实用的默认服务名称。这里是 AdminService,因为这也是在 CDS 模型中定义服务时的名称。

事件处理程序办法获取特定于事件的事件上下文参数,该参数提供对事件输出参数的拜访和设置后果的能力。例如,让咱们看一下 CdsCreateEventContext 上下文参数。咱们要扩大的事件是 CREATE 事件。上下文变量的类型特定于这个扩大的 CREATE 事件。onCreate 办法返回 void,因为后果是通过运行设置的:context.setResult(…)。

应用命令行 mvn clean spring-boot:run 启动这个模板利用,而后在命令行里应用 curl 命令插入一条新的 product 数据:

curl -X POST http://localhost:8080/odata/v4/AdminService/Products \
-H "Content-Type: application/json" \
-d '{"ID": 42,"title":"My Tutorial Product","descr":"You are doing an awesome job!"}'

插入胜利:

关上 Java 利用 url:
https://workspaces-ws-pdwk4-a…
能看到刚刚插入的 product:

退出移动版