The Editorial Web Service
The CUE Live editorial web service is very similar to the Content Engine web service, with the main difference being that instead of returning content in the form of XML Atom feeds, it returns JSON data. If you are familiar with the Content Engine web service, then you will find the CUE Live web service easy to use. If you haven't used the Content Engine web service before, then you should probably start by reading at least the introduction of the Escenic Content Engine Integration Guide.
The editorial web service provides a standard REST HTTP API in which all
operations are performed by sending GET
,
POST
, PUT
or
DELETE
requests to various URLs. The default name of
the web service is live-center-editorial
.
Unlike the
Content Engine
web service, the
CUE Live
editorial web service has no global entry point or "start" URL. Before
you do anything with the web service, therefore, you usually need to
obtain the ID of an Event content item (either from the
Content Engine
presentation layer or the
Content Engine
web service). Once you have an Event id you can request information
about it by submitting a GET
request like this to the
web service:
http://host-ip-address/live-center-editorial/event/event-id
where host-ip-address is your
CUE Live host name
or IP address and event-id is the ID of the
event you are interested in. Authentication is required, so if you
submitted the request using curl
, then the whole
command for an event with the id 24
would look like
this:
curl -u user:password -X GET http://host-ip-address/live-center-editorial/event/24
CUE Live then returns a JSON structure that looks something like this:
{ "id": 24, "title": "Liverpool - Manchester United", "entries": "http://host-ip-address/live-center-editorial/event/24/entries", "publishedEntries": "http://host-ip-address/live-center-editorial/event/24/entries?status=published" "unPublishedEntries": "http://host-ip-address/live-center-editorial/event/24/entries?status=unpublished", "self": "http://host-ip-address/live-center-editorial/event/24", "changelog": "http://host-ip-address/live-center-editorial/changelog/event/24", "entryModel": "http://host-ip-address/live-center-editorial/model/24/football", "values": { "title": "Liverpool - Manchester United", "body": "<p>Match: 23. January 2015</p>" }, "subscriptions": [ { "link": "http://host-ip-address/live-center-editorial/event/24/subscription/0", "source": "twitter" }, { "link": "http://host-ip-address/live-center-editorial/event/24/subscription/1", "source": "twitter" } ] }
The actual content of this document, as in all the
JSON structures returned by the web service, is in the
payload
field. In this case
payload
contains the field values of the Event
content item - a title and a description. The rest of the document
mostly consists of links that you can follow to obtain further
information. Submitting a new GET
request to the
entries
URL, for example:
curl -u user:password -X GET http://host-ip-address/live-center-editorial/event/24/entries
This returns a JSON document containing all the event's entries plus related information:
{ "entries":[ { "author":{ "value": "A.N. Other", "origin": "http://host-ip-address/webservice/escenic/person/7" }, "creator":{ "value": "livedemo Administrator", "origin": "http://host-ip-address/webservice/escenic/person/1" }, "creationDate": "2015-02-13T12:20:24.000+0000", "eTag": "0d1f1e1f-6bf2-46fd-8de4-c1de0c015f0a", "event": "http://host-ip-address/live-center-editorial/event/24", "lastModifiedDate": "2015-02-13T12:36:38.000+0000", "model": "http://host-ip-address/live-center-editorial/model/24/football", "parent": "http://host-ip-address/live-center-editorial/entry/251", "values":{ "basic": "Test entry" }, "publishDate": "2015-02-13T12:20:24.000+0000", "self": "http://host-ip-address/live-center-editorial/entry/283", "state": "published", "tags":[] }, ...(more entries)... ] }
Like many REST APIs, the CUE Live API is more or less self-documenting. It consists entirely of URLs, and the fields in the returned JSON documents have reasonably self-explanatory names. A good way of learning the API is to install a REST API browser extension such as DHC for Chrome, and simply explore it.
Usage of the HTTP commands follows standard rest conventions:
-
Send
GET
to a URL to retrieve a resource (as in the examples above) -
Send
PUT
to a URL to modify a resource -
Send
POST
to a URL to create a new resource -
Send
DELETE
to a URL to delete a resource