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.xml
HTTP/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. The location 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.