Using PROPPATCH to create a resource with no body

The DeltaV versioning extensions to WebDAV propose four new
types of resources: workspace, activity, configuration, and history.

All these new resource types share the characteristic that their
state is represented as a set of properties, rather than in a body.
In this way, they are like the collection resource type from the
core WebDAV protocol, and the redirect-reference resource type from
the advanced collection WebDAV extensions.

A common issue for each of these new resource types is how one creates
an instance.  The approach started by the core WebDAV spec is
to introduce a new method for creating each new resource type
(e.g. MKCOL). This becomes rather burdensome when
the list starts growing (MKWORKSPACE, MKACTIVITY, MKCONFIGURATION,
MKHISTORY, ...), and is rather redundant since they all take the
form of initializing a set of properties of a new resource.

An alternative approach is to just allow PROPPATCH to create a new
resource when it is applied to a null resource.  I would propose
also adding a new value for the Overwrite header, e.g. Update,
which would say that the destination of operation should be updated,
rather than deleted (Overwrite=T) or have the operation fail (Overwrite=F).
Then the Overwrite header could be used to control the effect of a
PROPPATCH.

This is very consistent with the functionality of PUT, which can be
used either to update an existing resource or create a new resource.

Another alternative is to introduce a MKRESOURCE method, which would
be equivalent to a PROPATCH with Overwrite=F.

I personally favor extending PROPPATCH since it is both more consistent
with PUT, and a more powerful/flexible approach.  As a note, MKCOL would
then just become an alias for a PROPATCH, with the resourcetype
property set to be <D:collection/>

Comments?

Cheers,
Geoff

Received on Monday, 16 August 1999 13:54:02 UTC