This proposal extends the Atom protocol to allow servers to optionally support creation of entries or resources by using the HTTP "PUT" method directly to a URI location beneath a base URI.


Open -- incomplete

This proposal has been separated from PaceNonEntryResources and is expanded to support PUT-to-create for <entry> resources.


The use cases for this support are:

An alternate suggestion was to use a "name hint" with a PostURI/ResourcePostURI. This proposal provides a more concrete indication to clients whether the server supports server generated URIs (PostURI/ResourcePostURI) or/and user/client generated URIs (BaseURI/ResourceBaseURI).

This proposal is believed to be upward compatible with WebDAV. Note in the proposal that PUTing to a "deep" hierarchy may require external means for creating the deeper path segments, such as an administrative web page within the publishing system or via WebDAV's MKCOL method.


In the protocol document, add to 4.2 Terminology:

In 4.3 The AtomAPI Model, delete "There are three major classes of URIs in this specification: PostURI, FeedURI and EditURI." and add the following to the summary list of URIs:

In section 5.4.1 Link Tag @rel, add:

As originally noted in PaceNonEntryResources, it is recommended that the access patterns (how to use POST, PUT, GET, DELETE in a generic fashion) should be separated from the descriptions of the specific URIs. That refactoring will go in a different Pace. Depending on the status of that Pace, this Pace is incomplete until spec text is added either in the current style or the style of the other pace.

The section describing ResourcePostURI and ResourceBaseURI will note:

In section 6, Security Considerations, it should be noted that client-specified URIs used with PUT when creating new resources should be checked.


ResourceBaseURI conflicts with API section 7.1 SOAP Enabling. The second alternate proposal in PacePutDelete's, Atom-Action header, would work.


See also: Pace409Response