]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
webapi.txt: specify replace= behavior on all PUT and POST commands
authorBrian Warner <warner@allmydata.com>
Thu, 16 Aug 2007 02:31:49 +0000 (19:31 -0700)
committerBrian Warner <warner@allmydata.com>
Thu, 16 Aug 2007 02:31:49 +0000 (19:31 -0700)
docs/webapi.txt

index d660bf086e93e0f12de672d897fe99c1b8f1e82d..291c9dae0a28c60a75bdaa95164c918e4481536f 100644 (file)
@@ -136,6 +136,12 @@ the vdrive where currently nothing exists.
   vdrive. Intermediate directories are created on-demand just like with the
   regular PUT command.
 
+  If there was already a child at the given name, this command will replace
+  the old child with the new one, and will return an HTTP 200 (OK) response
+  code. If there was not already a child there, it will return 201 (Created).
+  If you add an "replace=false" query argument, the command will return a 409
+  (Conflict) error rather than replacing an existing child.
+
  DELETE $URL
 
   This deletes the given file or directory from the vdrive.  If it is a
@@ -161,6 +167,12 @@ file rather than a directory.
   specification (rfc2616), this should return a 200 (OK) code when modifying
   an existing file, and a 201 (Created) code when creating a new file.
 
+  If there was already a child at the given name, this command will replace
+  the old child with the new one, and will return an HTTP 200 (OK) response
+  code. If there was not already a child there, it will return 201 (Created).
+  If you add an "replace=false" query argument, the command will return a 409
+  (Conflict) error rather than replacing an existing child.
+
   To use this, run 'curl -T localfile http://localhost:8011/vdrive/global/newfile'
 
 
@@ -175,6 +187,12 @@ than files.
   the URI of the given directory, although the client is not obligated to do
   anything with it.
 
+  If there was already a child at the given name, this command will replace
+  the old child with the new one, and will return an HTTP 200 (OK) response
+  code. If there was not already a child there, it will return 201 (Created).
+  If you add an "replace=false" query argument, the command will return a 409
+  (Conflict) error rather than replacing an existing child.
+
  GET $URL?t=rename-form&name=$CHILDNAME
 
   This provides a useful facility to browser-based user interfaces. It
@@ -319,12 +337,17 @@ request reaches the server". Use URIs if you want "this particular object".
   used to upload a single file at a time. To avoid confusion, name= is not
   allowed to contain a slash (a 400 Bad Request error will result).
 
+  If there was already a child at the given name, this command will replace
+  the old child with the new one. But if you add a "replace=false" argument,
+  the command will refuse to replace the child, signalling an error instead.
+
  POST $URL
   t=mkdir
   name=childname
 
   This instructs the node to create a new empty directory. The name of the
-  new child directory will be included in the form's arguments.
+  new child directory will be included in the form's arguments. Existing
+  children are replaced unless a "replace=false" argument is provided.
 
  POST $URL
   t=uri
@@ -332,8 +355,9 @@ request reaches the server". Use URIs if you want "this particular object".
   uri=newuri
 
   This instructs the node to attach a child that is referenced by URI (just
-  like the PUT $URL?t=uri method). The name and URI of the new child
-  will be included in the form's arguments.
+  like the PUT $URL?t=uri method). The name and URI of the new child will be
+  included in the form's arguments. Existing children are replaced unless a
+  "replace=false" argument is provided.
 
  POST $URL
   t=delete
@@ -349,8 +373,9 @@ request reaches the server". Use URIs if you want "this particular object".
 
   This instructs the node to rename a child within the given dirnode. The
   child specified by 'from_name' is removed, and reattached as a child named
-  for 'to_name'.  This is unconditional and will replace any child already
-  present under 'to_name', akin to 'mv -f' in unix parlance.
+  for 'to_name'. An existing child at 'to_name' is replaced unless a
+  "replace=false" argument is provided, making the default behavior similar
+  to the unix 'mv -f' command.
 
 
 == XMLRPC ==