管理 Atom 订阅源和 Atom 集合

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

要了解服务器上可用的 Atom 订阅源或集合,客户机需从服务器请求服务文档。 服务文档列出了可提供给客户机的 Atom 订阅源和集合的 URL。 然后,客户机可以通过向服务器发出 HTTP 请求,与 Atom 条目进行交互,如下所示:
GET
检索单个 Atom 条目或 Atom 条目列表。 如 Atom 服务文档所述,将针对 Atom 条目列表的 GET 请求发送至集合的 URL。 GET requests for a single Atom entry are sent to the URL of an individual Atom entry in the collection, as stated in the <atom:link rel="edit"> link for the entry.
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 状态码来拒绝这类客户机请求。 Do not specify any additional media types in <app:accept> elements in a service document for CICS.
  • CICS 不会拒绝集合中按类别划分的 Atom 条目。 You can use the <app:categories> element in a service document or category document to specify acceptable categories for entries in a collection, but CICS does not police whether clients adhere to these categories.
  • For reasons of performance, CICS does not automatically return Atom entries in a collection in the order in which they were most recently edited (as shown by the <app:edited> element in the entry). 该功能是 RFC 5023 中针对完整条目列表的一个“SHOULD”需求,但它却是针对部分条目列表的“MUST”需求。 CICS 为了保持较短的响应时间而忽略了此“SHOULD”需求,但它仍然为部分列表提供了有用的功能。 在使用服务例程为 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 集合