Abstract
Reworks the Protocol Model description using a Collection Feed model similar to that described in PaceFeedsNotCollections. GET on the Collection URI returns an Atom Feed.
Status
Withdrawn
Rationale
The existing Protocol Model section shows a pretty graphic and talks about the general use of the HTTP methods but does not provide a clear high level overview of how the Atom Publishing Protocol is intended to work.
Proposal
(Replace existing Protocol Model section with)
#. Protocol Model The Atom Publishing Protocol uses HTTP methods to manipulate collections of editable Web resources. APP Collections contain the IRI's and descriptive metadata for zero or more member resources and are responsible for the creation of new member resources. APP Collections are themselves Web resources identified by an IRI that MUST be resolvable into an HTTP URL. In response to Collection HTTP GET requests sent to the Collection IRI, Collection resources SHOULD return an Atom Feed Document containing a list of atom:entry elements representative of member resources. Because Collections may contain extremely large numbers of resources, a naive client could become overwhelmed if the returned Atom Feed Document contained an atom:entry for every member of the Collection, and the server would waste large amounts of bandwidth and processing time on clients incapable of handling the response. As a result, the Atom Feed Document returned in response to a simple GET request on the Collection IRI MAY represent a server-determined subset of the collection membership. While each of the atom:entry elements contained in the Atom Feed Document returned by the Collection is representative of a single member resource, those entries MUST NOT be considered editable representations of the member resource. Each member resource contained by a collection is associated with an IRI that MUST be resolvable into an HTTP URL. Each atom:entry contained in the Atom Feed Document returned by the Collection resource MUST contain one atom:link element with a rel attribute value of "edit" whose href attribute specifies the IRI of the member resource. Clients retrieve an editable representation of a member resource by sending an HTTP GET request to the IRI of the member resource. Clients submit updates to member resources by sending an HTTP PUT request to the IRI of the member resource containing the updated representation of the resource. Clients remove member resources by sending an HTTP DELETE request to the IRI of the member resource. Clients may request the creation of a new member resources by POSTing a representation of the new member resource to the Collection resource's IRI.