用途
Service Handlers 是一份面向 SAP CAP(Cloud Application Programming Model)服务处理器开发的最佳实践文档,用于指导开发者规范地实现 service.js / service.ts 中的事件处理逻辑,包括 ApplicationService、before/on/after 处理器、自定义 action 与 function 等。
主要能力
资料围绕以下能力展开:
- 处理器注册:推荐使用基于类的处理器,继承 cds.ApplicationService,在 init 方法中注册处理器,并始终调用 super.init()。
- 处理器阶段划分:before 用于校验、授权检查和数据库访问前的数据补充;on 用于完全替换默认数据库操作(自定义动作/函数、覆盖);after 用于结果加工转换和数据库写入后的副作用触发。
- 使用 cds.ql 读写数据:提供流式查询 API 示例,包括条件、列选择、排序、限制、关联展开,以及 INSERT、UPDATE、UPSERT、DELETE 的用法和返回结构。
- 跨服务调用:通过 cds.connect.to 连接其他服务,并使用 cds.run 在同一事务中执行多个操作。
- 自定义动作与函数:在 .cds 中定义 action(修改数据)和 function(只读),并在处理器中用 this.on 实现。
- 错误处理:使用 req.reject 返回 HTTP 状态错误,req.warn 发出警告但不中断,throw new cds.error 抛出程序化错误。
- 访问请求上下文:获取 user、locale、tenant,判断用户角色与标识。
使用方式
资料以代码示例展示典型实现,例如基于类的 CatalogService 中注册 before、on、after 处理器,并给出读写数据、跨服务调用、自定义动作与函数以及错误处理的具体代码片段。开发者可参考这些模式在 CAP 项目的 service.js 或 service.ts 中实现处理器。
适用场景
适用于使用 SAP CAP 框架进行 Node.js 服务端开发的团队和个人,尤其是需要实现服务处理器、自定义业务动作、数据校验与结果加工的场景。
限制
资料主要提供最佳实践与代码示例,未涉及具体的收费、价格、平台支持范围或性能效果数据,这些信息暂未提供。