Preview a Content Item
Before your client application submits a modified content item you may want to allow the user to preview the modified version. The example in this section shows how to preview a simple change to the title of a content item.
The first objective is to retrieve the content item:
curl -u user:password -X GET http://host-ip-address/webservice/escenic/content/43
The content item is returned as an Atom entry resource:
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:metadata="http://xmlns.escenic.com/2010/atom-metadata" xmlns:dcterms="http://purl.org/dc/terms/"> <id>http://host-ip-address/webservice/escenic/content/43</id> <title type="text">Test</title> <app:edited>2010-06-23T09:09:50.654Z</app:edited> <dcterms:created>2010-06-22T10:22:20.000Z</dcterms:created> <author> <name>demo Administrator</name> <uri>http://host-ip-address/webservice/escenic/person/2</uri> </author> <dcterms:identifier>4</dcterms:identifier> <metadata:reference source="ece-auto-gen" sourceid="6d7203c9-27d5-4fce-b14a-a466ead83875"/> <link rel="http://www.vizrt.com/types/relation/home-section" href="http://host-ip-address/webservice/escenic/section/4" title="New Articles" type="application/atom+xml; type=entry"/> <link href="http://wrk-ermo:12345/publication-id/incoming/article4.ece" rel="alternate"/> <link href="http://host-ip-address/webservice/escenic/content/preview" rel="http://www.vizrt.com/types/relation/preview"/> <link href="http://host-ip-address/webservice/escenic/lock/article/43" rel="http://www.vizrt.com/types/relation/lock"/> <link rel="http://www.vizrt.com/types/relation/publication" href="http://host-ip-address/webservice/escenic/publication/demo" title="demo" type="application/atom+xml; type=entry"/> <metadata:creator> <name>demo Administrator</name> </metadata:creator> o <metadata:publication href="http://host-ip-address/webservice/escenic/publication/demo"> <link rel="http://www.vizrt.com/types/relation/home-section" href="http://host-ip-address/webservice/escenic/section/4" title="New Articles" type="application/atom+xml; type=entry"/> <link rel="http://www.vizrt.com/types/relation/section" href="http://host-ip-address/webservice/escenic/section/4" title="New Articles" type="application/atom+xml; type=entry"/> </metadata:publication> <link href="http://host-ip-address/webservice/escenic/content/43" rel="edit"/> <link href="http://host-ip-address/webservice/escenic/content/43" rel="self"/> <content type="application/vnd.vizrt.payload+xml"> <vdf:payload xmlns:vdf="http://www.vizrt.com/types" model="http://host-ip-address/webservice/escenic/model/another"> <vdf:field name="TITLE"><vdf:value>Test</vdf:value></vdf:field> <vdf:field name="BODY"> <vdf:value> <div xmlns="http://www.w3.org/1999/xhtml"> <p>This is a test</p> </div> </vdf:value> </vdf:field> </vdf:payload> </content> </entry>
Your client application can now modify the title of the content item
(highlighted in the above listing). 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
POST
the file you have saved to the preview URI
identified by the
http://www.vizrt.com/types/relation/preview
relation:
curl --include -u user:password -X POST -H "Content-Type: application/atom+xml" \>
http://host-ip-address/webservice/escenic/content/preview --upload-file my-edited-article.xmlHTTP/1.1 100 Continue HTTP/1.1 201 Created Date: Mon, 13 Dec 2010 09:23:24 GMT Location: http://
host-ip-address/incoming/article1234.ece?token=-1723563771 Server: Jetty(6.1.19)
In order for the POST
operation to work, you must
specify one HTTP header as shown above:
Content-Type: application/atom+xml
-
You must specify the content type of the data you are uploading.
-
A
201
response code indicates success. Thelocation
header contains the URL of the content item preview. -
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.