Change a Content Item
Once your client application has retrieved a content item, it can modify
it and submit the changed version. The example in this section shows how
to make the simplest of changes: a simple change to the title of the
content item returned in
Retrieve a Content Item. If you are
following this example using curl
from the command
line, you can simple copy the returned entry into a text editor and
manually change the content of the <vdf:field
name="title">
element:
<vdf:field name="title"><vdf:value>Edited Title</vdf:value></vdf:field>
and save the results to a file (called
my-edited-item.xml
, for example).
In order to submit the updated content item, you must
PUT
the file you have saved to the same URI from
which it was retrieved:
curl --include -u user:password -X PUT -H "If-Match: *" -H "Content-Type: application/atom+xml" \>
http://host-ip-address/webservice/escenic/content/4 --upload-file my-edited-article.xmlHTTP/1.1 100 Continue HTTP/1.1 200 OK Date: Thu, 24 Jun 2010 09:23:24 GMT Content-Type: application/atom+xml;type=entry Content-Length: 0 Server: Jetty(6.1.19)
In order for the PUT
operation to work, you must
specify two HTTP headers as shown above:
Content-Type: application/atom+xml
-
You must specify the content type of the data you are uploading.
If-Match: *
-
The
If-Match
header value*
is used here for reasons of simplicity. It is acceptable to use it for test and demonstration purposes, but should never be used in a production system. For more information about this header and what it does, see Optimistic Concurrency.
If you're using curl
, it's a good idea to specify
--include
with PUT
operations:
curl
will then output the response header returned
from the web service as shown above, and you can verify whether or not
the operation was successful:
-
A response code in the 2xx range indicates success.
-
A response code in the 4xx range means that you made an invalid edit and the server won’t accept your modification.
-
A response code in the 5xx range means there is a server error.
Submitting a change in this way may not work if the resource you are attempting to modify is already locked by another client application. For more information about this and about how locking works, see Lock a Content Item.