管理 Atom 订阅源和 Atom 集合

客户机可以查看 Atom 订阅源中的 Atom 条目;Atom 订阅源中的 Atom 条目是只读的,不能进行编辑。 客户机可以查看、编辑、创建或删除 Atom 集合中的 Atom 条目。

要了解服务器上可用的 Atom 订阅源或集合,客户机需从服务器请求服务文档。 服务文档列出了可提供给客户机的 Atom 订阅源和集合的 URL。 然后,客户机可以通过向服务器发出 HTTP 请求,与 Atom 条目进行交互,如下所示:
GET
检索单个 Atom 条目或 Atom 条目列表。 如 Atom 服务文档所述,将针对 Atom 条目列表的 GET 请求发送至集合的 URL。 对单个 Atom 条目的 GET 请求会发送到集合中单个 Atom 条目的 URL ,如该条目 <atom:link rel="edit"> 链接所述。
POST
创建新的 Atom 条目。 POST 请求被发送至集合的 URL。
PUT
编辑客户机使用 GET 请求获取的现有 Atom 条目。 PUT 请求被发送至集合中单个 Atom 条目的 URL。
DELETE
删除现有 Atom 条目。 DELETE 请求被发送至集合中单个 Atom 条目的 URL。

对于 POST 和 PUT 请求,客户机发送的请求主体包含完整的 Atom 条目文档。 (CICS® 不支持 Atom 集合中的其他介质类型。) 尽管 PUT 请求通常只更新现有条目的一部分,但是客户机应该发送整个条目,包括现有条目中未编辑的元素,以避免服务器可能造成的错误解释。 服务器会添加新条目或更新现有条目,然后向客户机发送具有适当 HTTP 状态码的 HTTP 响应。 服务器可以更改、添加或除去客户机为条目提供的元数据项(例如,Atom 标识或日期和时间戳记)。 因此,当客户机成功发出 POST 或 PUT 请求后,服务器还会将新条目的副本作为响应主体返回。 对于集合中的 Atom 条目,CICS 需要 PUT 请求的实体标记 (ETags),这使服务器能够确认客户机的编辑请求基于最新的 Atom 条目副本。

RFC 5023 Atom 发布协议 包含用于与集合中的 Atom 条目进行交互的协议的完整语句,以及使用的 HTTP 请求和响应的一些示例。

对于 CICS 直接为其从文件或临时存储队列中抽取数据而不涉及服务例程的集合,CICS 会执行服务器操作,以处理客户机请求、更新资源以及向客户机返回响应。 请注意,这些操作将永久修改文件或临时存储器队列的内容。 CICS 添加或编辑记录以响应 POST 和 PUT 请求。 对于和文件相关的 DELETE 请求,CICS 会删除记录,但 ESDS 除外,因为其中的记录无法删除。 对于和临时存储器队列相关的 DELETE 请求,CICS 通过将第一个字节设置为 'FF'x 来除去记录。 如果这些操作不适合您的环境,请改用服务例程来处理客户机请求。

CICS 不支持“Atom 发布协议”(RFC 5023) 中针对集合描述的一些可能操作,具体如下:
  • CICS 不支持集合中的介质资源和介质链接条目。 Atom 发布协议 (RFC 5023) 指定的介质资源,主要用作组织集合中非文本内容的一种方法。 如果客户机请求尝试在集合中创建的条目不是 Atom 条目(介质类型为 application/atom+xml,带/不带 type=entry 参数),那么 CICS 将通过 415 状态码来拒绝这类客户机请求。 请勿在 CICS 服务文档的 <app:accept> 元素中指定任何其他媒体类型。
  • CICS 不会拒绝集合中按类别划分的 Atom 条目。 您可以在服务文档或类别文档中使用 <app:categories> 元素为集合中的条目指定可接受的类别,但 CICS 不会监控客户端是否遵守这些类别。
  • 出于性能考虑, CICS 不会按照最近编辑的顺序(如条目中的 <app:edited> 元素所示)自动返回集合中的 Atom 条目。 该功能是 RFC 5023 中针对完整条目列表的一个“SHOULD”需求,但它却是针对部分条目列表的“MUST”需求。 CICS 为了在提供部分列表的有用功能的同时保持可接受的响应时间,偏离了这一要求。 在使用服务例程为 CICS 提供条目时,如果希望集合符合此“SHOULD”需求并且资源可存储上一次编辑条目的日期和时间戳记,那么您可以按这个日期和时间戳记的顺序来提供条目。
CICS 不支持的 Atom 功能部件列出了其他不受支持的项,这些项是次要的或不与集合特别相关。

对于由 CICS 提供并包含服务例程从资源中抽取并提供给 CICS 的数据的集合,CICS 会通过一组容器将客户机的请求传递至服务例程。 必须对服务例程进行编码,以对资源中的数据应用该请求,然后向 CICS 返回一个响应以便发送给客户机。 在这种情况下,就某些方面而言,您与 CICS 同样有责任确保符合“Atom 发布协议”(RFC 5023)。 处理服务例程中的 Atom 集合编辑请求 说明服务例程如何处理针对集合的 GET , POST , PUT 和 DELETE 请求。

在完成设置 Atom 集合和服务例程(根据需要)后,可以使用用于处理 HTTP 协议的任何适当的客户机来编辑条目。 发出请求和查看响应的确切过程会因所选客户机而异。 有关如何使用 GET , POST , PUT 和 DELETE 请求与集合中的条目进行交互的更多信息,请参阅 使用 Web 客户机编辑 Atom 集合