在服务例程中处理 Atom 集合编辑请求

在根据服务例程提供的现有 Atom 订阅源创建集合时,请更新程序以针对集合中条目的 POST、PUT、DELETE 和 GET 请求执行适当的操作。

CICS 与服务例程之间的接口处理集合的方式基本上与处理普通 Atom 订阅源的方式相同。 CICS 为 DFHATOMPARMS 容器中的程序提供关于客户机请求的信息。 您的程序必须分析该请求,然后在需要时将 DFHATOMPARMS 容器和其他字符容器返回至 CICS 以进行响应。 样本服务例程 DFH$W2S1 演示了操作方法。

程序可能需要通过修改用于保存该订阅源的 Atom 条目数据的资源中(数据库、文件或其他资源)的记录,对客户机请求执行操作,这是针对集合所涉及的额外任务。 程序可能需要按如下方式响应,而不是简单返回从资源获取的单个 Atom 条目的数据:
  • 对于 POST 请求,添加新记录并在记录中填入针对客户机所提供新 Atom 条目的数据。
  • 对于 PUT 请求,根据客户机请求的更改编辑现有记录。
  • 对于 GET 请求,删除记录。

根据请求方法不同,程序的响应可能只是一个用于确认所请求更改的 HTTP 状态行,而不含其他数据。 服务例程所做的更改将永久修改资源内容,因此,必须确保实施适当的安全措施。

对于使用 POST 和 PUT 方法的客户机请求,CICS 在名为 DFHREQUEST 的容器中提供请求主体。 客户机应该发送包含完整 Atom 条目文档的请求主体。 您的程序必须对 Atom 条目文档的标记进行语法分析,将 Atom 条目中的元素与资源中记录内的字段匹配,并使用元素的内容来创建新的资源记录或更新现有资源记录。 该程序还必须提供某些元素的内容,例如,日期和时间戳记。

Atom 发布协议 (RFC 5023) 允许服务器可以足够自由地修改客户机提交的条目的元数据或内容。 如果生成的条目满足 Atom 的格式要求,并且服务例程忽略或覆盖客户机请求中的元素内容对于资源记录而言是最佳方法,那么服务例程通常会执行这样的操作。 如果希望对服务例程编码以忽略或覆盖特定元素,那么对该元素执行查询之前,请参阅 RFC 4287 和 RFC 5023 以检查提议的操作是否可接受,然后继续。

当服务例程收到与集合相关的客户机请求时,它必须执行本部分所描述的任务。 这些指示信息假定您已编写服务例程来响应来自 Web 客户机的针对 Atom 订阅源的 HTTP GET 请求,如 编写程序以提供 Atom 条目数据中所述,并在样本服务例程 DFH$W2S1中进行了演示。

在对服务例程进行编码以执行这些任务时,如果资源和命令安全性在 CICS 区域中处于活动状态,并且集合中正在使用这些安全性,请确保 Web 客户机的用户标识具备正确的许可权来访问服务例程使用的 CICS 资源和命令。 有关保护 Atom 集合的安全措施的更多信息,请参阅 针对 Atom 订阅源的安全性