Beruflich Dokumente
Kultur Dokumente
Document History
Document
No.
1
Reviewed
15/05/2013
Finalised
15/05/2013
Published
15/05/2013
Information in this document may change without notice. EQUELLA and its
accompanying documentation are furnished under a non-disclosure, evaluation
agreement or licence agreement. Copying, storing, transmitting, or otherwise reproducing
the software or this document in any form without written permission from Pearson is
strictly forbidden.
All products, other than EQUELLA, named in this document are the property of their
respective owners.
Property of:
Pearson
Level 1, 11 Elizabeth Street
Hobart, Australia, 7000
Copyright 2013 Pearson
2|Page
Table of Contents
EQUELLA REST API .......................................................................................................... 5
OAuth Login ................................................................................................................... 6
OAuth Client Configuration ............................................................................................ 6
Accessing OAuth settings ............................................................................................ 6
Registering OAuth client applications ............................................................................ 7
Generated tokens .................................................................................................... 10
Obtaining An OAuth Token ........................................................................................... 10
Obtaining a token via Authorization Code Grant ........................................................... 10
Obtaining a token via Implicit Grant ........................................................................... 11
Obtaining a token via Client Credentials Grant ............................................................. 12
Searching for Resources ................................................................................................. 13
Searching personal resources ....................................................................................... 14
Examples .................................................................................................................. 15
Obtaining a Resource ..................................................................................................... 16
Requesting specific details ........................................................................................... 16
Comments .............................................................................................................. 16
History ................................................................................................................... 16
Example resource ....................................................................................................... 17
Contributing a New Resource .......................................................................................... 18
Files.......................................................................................................................... 18
Uploading Files ........................................................................................................ 18
Directories ................................................................................................................. 19
Files on the dir endpoint ........................................................................................... 19
Navigation ................................................................................................................. 19
New Versions of a Resource ............................................................................................ 21
Files.......................................................................................................................... 21
Examples .................................................................................................................. 21
Editing an Existing Resource ........................................................................................... 22
Locking ..................................................................................................................... 22
Locking example ...................................................................................................... 23
Files.......................................................................................................................... 23
Extended actions ........................................................................................................ 23
Notifications ................................................................................................................. 24
Retrieving notifications ................................................................................................ 24
Clearing notifications .................................................................................................. 24
Tasks ........................................................................................................................... 25
3|Page
4|Page
5|Page
OAuth Login
The EQUELLA REST API supports OAuth 2.0 login. To use OAuth login, you must first
register an OAuth Client within EQUELLA. This can be done from the OAuth Settings
function accessed from the Settings page. (See the Registering OAuth client applications
section on page 7.
NOTE: You will need the following privileges to fully administer OAuth Clients:
CREATE_OAUTH_CLIENT
EDIT_OAUTH_CLIENT
DELETE_OAUTH_CLIENT
ADMINISTER_OAUTH_TOKENS.
The configuration of your client depends on which OAuth flow you intend to use.
EQUELLA supports three OAuth flows:
1. Authorization Code Grant ( http://tools.ietf.org/html/rfc6749#section-4.1 )
2. Implicit Grant ( http://tools.ietf.org/html/rfc6749#section-4.2 )
3. Client Credentials Grant ( http://tools.ietf.org/html/rfc6749#section-4.4 )
6|Page
7|Page
2. Enter a Descriptive name (only used internally). The Client ID and Client secret
are automatically generated, but the Client ID may be replaced with a user-defined
value.
3. Select an OAuth flow from the drop-down list, depending on the type of OAuth client
being registered. See the following options:
8|Page
9|Page
Generated tokens
The Generated tokens section of the OAuth settings page lists all tokens that have been
generated for all registered client applications. Client applications will create tokens using
the methods outlined in Obtaining An OAuth Token. To view or remove tokens the
ADMINISTER_OAUTH_TOKENS privilege is required.
10 | P a g e
Do not store this code, it has a limited lifespan (2 minutes) and can only be used
once, even if the request containing the code fails. In this case you would need to
obtain another code.
4. Your application needs to detect the presence of the code parameter and do a server
side request to the EQUELLA OAuth token endpoint:
.../oauth/access_token?grant_type=authorization_code&client_id=[client
id]&code=[code from step 3]
2. User is presented with an EQUELLA login screen (if they are not already logged in,
e.g. in another browser tab)
11 | P a g e
3. The EQUELLA OAuth authorisation endpoint redirects to either the inbuilt redirect URL
(if "default" was specified) or the supplied redirect_uri with the token appended to the
URL as a URL fragment:
[redirect URL]#access_token=[token]
Your application must extract the token from the browser URL.
12 | P a g e
start - The first record of the search results to return (zero based, i.e. first result is
the zeroth result). Default value is 0.
length - The number of results to return. Default value is 10. Maximum value is
100.
order - The order of the search results. Allowed values are 'relevance', 'modified',
'name' or 'rating'. Default value is 'modified' if the query parameter is blank, or
'relevance' if a query is supplied.
reverse - Reverse the order of the search results. Allowed values are 'true' or 'false'.
Default is 'false'.
where - You can use a where clause to perform advanced searching over resource
metadata.
The where clause is designed to be a SQL-like query language. The specification of the
where clause (in BackusNaur Form
http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form ) is:
WHERE STATEMENT
BOOLEAN_EXPR
OR_BOOLEAN_EXPR
AND_BOOLEAN_EXPR
CLAUSE
BRACKETS
COMPARISON
EXISTS_CLAUSE
XPATH
COMPARISON_OP
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
"where"? BOOLEAN_EXPR
OR_BOOLEAN_EXPR
AND_BOOLEAN_EXPR ("or" AND_BOOLEAN_EXPR)*
CLAUSE ("and" CLAUSE)*
"not" CLAUSE | BRACKETS | COMPARISON | EXISTS_CLAUSE
"(" BOOLEAN_EXPR ")"
XPATH COMPARISON_OP COMPARISON_RHS
XPATH "exists"
"/" (ALPHA | NUMBER | [/._:@])+
"=" | "is" | "<>" | "is not" | "<" | "<=" | ">" | ">="
COMPARISON_RHS
STRING_VALUE
NUMBER_VALUE
GROUP_VALUE
STRING
ALPHA
NUMBER
::=
::=
::=
::=
::=
::=
::=
An example where clause is "where /xml/item/category not like 'dog%'" (quotes not
included). Note that all query string parameters need to be URL encoded, so to use this
example where clause:
GET .../api/search?where=where%20%2Fxml%2Fitem%2Fcategory%20not%20like%20'dog%25'
13 | P a g e
Any schema node you search on in the where clause must have "Index for Power
Searches" selected in the schema editor of the Administration Console.
showall - If 'true' then include resources that are not live. Allowed values are 'true'
or 'false'. Default is 'false'.
info - How much information to return for each result. Allowed values are 'basic',
'metadata', 'detail', 'attachment', 'navigation', 'drm' and 'all'. Multiple values can be
specified via comma separation. Specifying an info parameter with no value will
return resource representations containing only uuid, version and links fields only.
'detail' will return miscellaneous data on each resource such as the resource owner
and date of last modification.
'navigation' will return the navigation tree of the resource (if any).
'drm' will return the digital rights management settings on the resource (if any).
You should specify the minimum information that you need. Use of 'all' is not
recommended as large amounts of data are returned and many database queries are
required to be executed by the server.
The format of the results returned by this endpoint is the Search Results Representation.
14 | P a g e
Examples
Search for first 10 results, with query 'the veronicas' and order by rating
GET .../api/search?q=the%20veronicas&order=rating
Search for results 11 to 20, with query 'cats' within two specified collections, showing
resources that are not live, ordered by date last modified (most recent first).
GET .../api/search?start=10&length=10&q=cats&collections=75479a16-cdd4-4aa7-86579412d3aec1e1,35d5d0d5-422b-24b2-82b2-0ee6bb8022ab&showall=true&order=modified
15 | P a g e
Obtaining a Resource
To view details of a particular resource you will need to know its UUID and version:
GET .../api/item/[uuid]/[version]
Alternatively you can list all versions of a resource by omitting the version from the path:
GET .../api/item/[uuid]
To retrieve the latest 'live' version of a resource there is a special 'latestlive' version:
GET .../api/item/[uuid]/latestlive
To retrieve the latest version of a resource, regardless of status, there is a special 'latest'
version:
GET .../api/item/[uuid]/latest
Valid values are the same as the search 'info' parameter (See Searching For Resources).
NOTE: Some information may not be show depending on the privileges of the user, e.g.
attachments will not be shown if the user making the API request does not have the
VIEW_ITEM privilege. Having only DISCOVER_ITEM allows the user to see minimal
information.
Comments and history on a resource can only be retrieved via sub-entity URLs.
Comments
To list all comments on a resource:
GET .../api/item/[uuid]/[version]/comment
Currently the comments are read-only and comments cannot be edited or deleted, and no
new comments can be added. The API will be expanded in the future to allow for this.
History
To view the history of a resource (e.g. edits, submissions to moderators, status changes,
etc)
GET .../api/item/[uuid]/[version]/history
16 | P a g e
Example resource
An example resource, with every possible attachment type, can be seen under the
Formats - Examples section.
17 | P a g e
The minimum requirement is that your JSON representation contains a collection field.
Failure to specify a collection in the POSTed JSON is an error. All other fields such as
metadata are optional (but highly useful).
The new resource data will be checked for validity and the system will ensure that the
UUID/version combination does not already exist. If no UUID and version are supplied in
the representation then one will be allocated. The endpoint for the new resource will be
returned in a Location header in the POST response.
There is an optional 'draft' parameter when posting to the item URL. Setting draft=true
will keep the resource in a draft state, if this parameter is omitted, or set to false, the
resource will enter the 'live' state or be submitted for moderation (whichever applies).
E.g.
POST .../api/item?draft=true
When contributing a resource (or editing an existing resource) you can specify an optional
'waitforindex' parameter. Setting it to true will wait for the resource to be indexed for
searching before responding. This ensures that the resource is searchable by the time
you receive a response. The default value is false so that the API call can respond as
quickly as possible.
Files
To attach files to a resource you will need to obtain a temporary file area by POSTing to
the file endpoint:
POST .../api/file
which will return a JSON representation of the root folder (See File Area Representation).
You will need to extract and store the uuid field so that you can supply it when you save
the resource:
POST .../api/item?file=[file area uuid]
Uploading Files
Files can then be uploaded by PUTting the binary file to a .../api/file/[file area
uuid]/content/[filepath] URL. You can specify the parent directories of the file (if any) in
the URL. E.g.
PUT .../api/file/[file area
uuid]/content/a%20folder/another%20folder/myimage.jpeg
18 | P a g e
Attaching Files
Uploading a file will not make it appear on the resource summary page. To do so you
must create and append an Attachment Representation of type 'file' to the Resource
Representation's 'attachments' field. (See Formats on page 28)
{
"attachments": [
{
"type" : "file",
"description" : "An image",
"filename" : "a folder/another folder/myimage.jpeg"
}]
}
The filename of the attachment must be relative to the root of the file area.
GET, PUT and DELETE are supported for the .../api/file/[file area uuid]/content endpoint.
Directories
You can manipulate directories in the file area using the .../api/file/[file area uuid]/dir
endpoint. GET, PUT and DELETE are supported for this endpoint.
When using GET you can specify a deep=true parameter to get a nested representation
of the folder structure. E.g.
GET .../api/file/[file area uuid]/dir/a%20folder?deep=true
E.g.
Navigation
You can edit the navigation tree of the resource by manipulating the JSON of the
resource's 'navigation' field.
Note that any new attachments you have added to the resource's 'attachment' field will
not have a UUID assigned, yet the Navigation Tab Representation has a $ref field which
relies on an existing attachment UUID. You can resolve this issue by assigning your
attachment with a UUID of "uuid:[temporary ID]" and set the navigation tab to refer to
"uuid:[temporary ID]". When the resource is saved the attachment will be assigned a
UUID and the navigation tab reference will be updated accordingly. This also applies for
XML nodes in the resource's metadata field, i.e. each temporary attachment UUID will be
scanned for and replaced with the attachment's assigned UUID in the XML.
19 | P a g e
For example:
{
..
"metadata" : "<xml><mynode>uuid:myfile</mynode></xml>",
..
"attachments" : [ {
"type" : "file",
"filename" : "myfile.jpg",
"uuid" : "uuid:myfile"
} ]
"navigation" : {
"showUnreferencedAttachments" : false,
"showSplitOption" : false,
"nodes" : [ {
"name" : "Node 1",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "uuid:myfile"
}
} ]
} ]
}
..
}
When assigning these UUIDs to your attachments make sure you assign a unique ID for
each attachment, otherwise an error will be returned.
20 | P a g e
Files
If you simply POST the new version JSON then the files from the previous version will be
lost unless you specifically copy the files from the previous version. To do so you need to
obtain a temporary file are based on the existing resource (you will need one of the
following privileges to do so: EDIT_ITEM, NEWVERSION_ITEM, CLONE_ITEM,
REDRAFT_ITEM)
POST .../api/file/copy?uuid=[existing resource uuid]&version=[existing resource
version]
This gives you a file area representation which you will need to supply the UUID of when
saving the new versioned resource:
POST .../api/item?file=[file area uuid]
Examples
New versioning a resource, removing one of the files
1. Get an existing resource
GET /api/item/6fe79abc-eeb2-4aad-8ee2-b66ac8b519c5/1/?info=all
2. Modify the version number in the JSON (e.g. set it to zero for automatic new version)
3. Copy the files from the old version
POST /api/file/copy?uuid=6fe79abc-eeb2-4aad-8ee2-b66ac8b519c5&version=1
21 | P a g e
When using PUT the status of the resource will not be changed, e.g. if it is in 'draft' status
it will stay in 'draft' status. To submit an edited resource you need to post to the 'submit'
sub-entity (See Extended actions)
Locking
You can see if a resource is locked by accessing the /lock sub-entity which will return
either a 404 error if the item is not locked, or a Lock Representation.
GET .../api/item/[uuid]/[version]/lock
You may unlock a resource by calling DELETE on the lock. Note that this means you can
delete a lock obtained by another user (i.e. it is a force unlock), so use with caution.
DELETE .../api/item/[uuid]/[version]/lock
To obtain a lock, POST to the lock URL (the resource must not already be locked)
POST .../api/item/[uuid]/[version]/lock
This will return a JSON representation of the lock. Once you obtain this lock you will
need to extract the lock 'uuid' property.
The resource is now locked, any attempt to modify the resource will now result in a lock
error occurring and a 409 response being returned unless the lock parameter is passed
with the edit. I.e.
PUT .../api/item/[uuid]/[version]?lock=[lock uuid]
This will commit the edits and then unlock the resource. You can specify a
keeplocked=true parameter to retain the lock.
Attempting to lock a resource that is already locked will result in a 409 (conflict)
response.
Attempting to unlock a resource that is not locked will result in a 404 (the lock is not
found) response.
22 | P a g e
Locking example
1. GET .../api/item/e25586c8-6d5a-11e1-a751-a4f34824019b/1
2. POST .../api/item/e25586c8-6d5a-11e1-a751-a4f34824019b/1/lock
3. Retrieve lock UUID from response of step 2
4. Make edits to response of step 1
5. PUT .../api/item/e25586c8-6d5a-11e1-a751-a4f34824019b/1?lock=[uuid]
Files
If you need to edit the files of the resource you should use the .../api/file/copy endpoint
(see New Versions Of A Resource)
If the file parameter is not supplied when POSTing the edited resource then the files will
remain unchanged.
Extended actions
There are a number of edits on a resource which can only be performed by POSTing to an
action/[action name] sub-entity. These actions are:
archive
redraft
reset
reactivate
restore
resume
submit
suspend
which will immediately archive the resource (permissions and current resource status
permitting)
23 | P a g e
Notifications
You can search for and clear user notifications using the .../api/notification endpoint.
Retrieving notifications
To retrieve user notifications you perform a GET request on the .../api/notification
endpoint.
Several parameters are supported, all of them are optional:
start - The first record of the search results to return (zero based, i.e. first result is
the zeroth result). Default value is 0.
length - The number of results to return. Default value is 10. Maximum value is 100.
type - Filter results by notification type. Allowed values are 'all', 'wentlive', 'rejected',
'badurl', 'watchedwentlive' and 'overdue'. Default value is 'all'
The endpoint returns a Search Results Representation, where the results array contains
Notification Representations.
Clearing notifications
To clear a notification send a DELETE request to the .../api/notification/[id] endpoint,
where [id] is the id of a notification.
24 | P a g e
Tasks
You can search for tasks using the .../api/task endpoint.
Retrieving tasks
To retrieve user tasks you perform a GET request on the .../api/task endpoint.
Several parameters are supported, all of them are optional:
start - The first record of the search results to return (zero based, i.e. first result is
the zeroth result). Default value is 0.
length - The number of results to return. Default value is 10. Maximum value is
100.
type - Filter results by notification type. Allowed values are 'all', 'wentlive', 'rejected',
'badurl', 'watchedwentlive' and 'overdue'. Default value is 'all'
The endpoint returns a Search Results Representation, where the results array contains
Task Status Representations.
25 | P a g e
26 | P a g e
NOTE: A 200 (success) response can be returned even in the event of failure, since the
task is run in the background.
27 | P a g e
Formats
In the format descriptions below the value types are indicated in triangular brackets (e.g.
<string>).
When POSTing or PUTting a representation some fields are mandatory. In the format
descriptions below mandatory fields are prefixed with *
All dates fields are in ISO 8601 format (http://en.wikipedia.org/wiki/ISO_8601).
NOTE: The following formats may be expanded in the future. Not all fields may be
present in any given representation.
Resource Representation
Note that the name and description fields are read-only. If you post a resource
representation to the server, the name and description will be extracted from the
metadata XML, not the name and description fields.
{
"uuid" : <uuid>,
"version" : <int>,
"name" : <string>,
"description" : <string>,
"metadata" : <string>,
"status" : <string>
"createdDate" : <date>,
"modifiedDate" : <date>,
"owner" : <User Representation>,
"collaborators" : [ <User Representation>, ... ],
* "collection" : <Collection Representation>,
"rating" : <float>,
"attachments" : [ <Attachment Representation>, ... ],
"navigation" : <Navigation Representation>,
"drm" : <DRM Representation>,
"links" : {
"self" : ".../api/item/[uuid]/[version]/",
"view" : ".../items/[uuid]/[version]/"
}
}
28 | P a g e
Collection Representation
{
* "uuid" : <uuid>
}
Attachment Representation
{
"uuid" : <uuid>,
* "type" : <string>,
* "description" : <string>,
"viewer" : <string>
}
NOTE: An attachment representation may contain additional fields based on the value of
the 'type' field.
The most common attachment type is 'file'.
29 | P a g e
* "type" : "url",
"uuid" : <uuid>,
* "description" : <string>,
* "url" : <string>,
"disabled" : <boolean>,
"links" : {
"thumbnail" : ".../thumbs/[uuid]/[version]/[attach uuid]",
"view" : ".../items/[uuid]/[version]/?attachment.uuid=[attach uuid]"
}
}
30 | P a g e
}
}
31 | P a g e
"size" : <int>,
* "packageFile" : <string>,
"links" : {
"thumbnail" : ".../thumbs/[uuid]/[version]/[attach uuid]",
"view" : ".../items/[uuid]/[version]/?attachment.uuid=[attach uuid]"
}
}
Comment Representation
{
"uuid" : <uuid>,
"rating" : <int>,
"anonymous" : <boolean>,
"comment" : <string>,
"postedBy" : <User Representation>,
"postedDate" : <date>
}
User Representation
{
* "id" : <string>,
"username" : <string>,
32 | P a g e
"firstName" : <string>,
"lastName" : <string>,
"emailAddress" : <string>
}
Directory Representation
{
"type" : "folder",
"filename" : <string>,
"parent" : <string>,
"files" : [ <File Representation>, ... ],
"folders" : [ <Directory Representation>, ... ],
"links" : {
"content" : ".../api/file/[uuid]/content/[path]",
"dir" : ".../api/file/[uuid]/dir/[path]",
"self" : ".../api/file/[uuid]/dir/[path]"
}
}
File Representation
{
"type" : "file",
"filename" : <string>,
"parent" : <string>,
"size" : <int>
"links" : {
"content" : ".../api/file/[uuid]/content/[path]",
"dir" : ".../api/file/[uuid]/dir/[path]",
"self" : ".../api/file/[uuid]/dir/[path]"
}
}
Lock Representation
{
"uuid": <uuid>,
"user": <User Representation>,
"links": [{
"self": ".../api/item/[uuid]/[version]/lock/"
}]
}
33 | P a g e
Navigation Representation
NOTE: showUnreferencedAttachments is deprecated due to faulty reverse Boolean logic
being applied, and is maintained for compatibility only. The new field is
hideUnreferencedAttachments
{
"showUnreferencedAttachments" : <boolean>,
"hideUnreferencedAttachments" : <boolean>,
"showSplitOption" : <boolean>,
"nodes" : [ <Navigation Node Representation>, ... ]
}
UUID Reference
{
"$ref" : <uuid>
}
DRM Representation
{
"options" : <DRM Options Representation>
}
34 | P a g e
Notification Representation
{
"id" : <int>,
"reason" : <string>,
"userTo" : <string>,
"date" : <date>,
"item" : <Resource Representation>
}
35 | P a g e
Task Representation
{
"uuid" : <uuid>,
"name" : <string>,
"description" : <string>,
"priority" : <int>,
"unanimous : <boolean>,
"workflow" : <Workflow Representation>
}
Workflow Representation
{
"uuid" : <uuid>,
"name" : <string>
}
Connector Representation
{
"uuid" : <uuid>,
"name" : <string>,
"description" : <string>,
"type" : <string>
}
Examples
Resource Example
{
"uuid" : "2f6e9be8-897d-45f1-98ea-7aa31b449c0e",
"version" : 1,
"name" : "ItemApiViewTest - All attachments",
36 | P a g e
37 | P a g e
"description" : "Google",
"url" : "http://google.com.au/",
"disabled" : false,
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/32a79ea6-8b67-4b38-af85-341b2d512f09",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=32a79ea6-8b67-4b38-af85-341b2d512f09"
}
}, {
"type" : "htmlpage",
"uuid" : "78a2de74-96de-48de-8865-22856c22ae49",
"description" : "Web Page",
"filename" : "_mypages/78a2de74-96de-48de-8865-22856c22ae49/page.html",
"size" : 24,
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/78a2de74-96de-48de-8865-22856c22ae49",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=78a2de74-96de-48de-8865-22856c22ae49"
}
}, {
"type" : "googlebook",
"uuid" : "b24aa5fa-de50-4021-b7c4-ac4d3a918129",
"description" : "Book!",
"bookId" : "http://www.google.com/books/feeds/volumes/NBMDtWq1MnUC",
"viewUrl" : "http://books.google.com/books?id=NBMDtWq1MnUC&ie=ISO-88591&source=gbs_gdata",
"thumbUrl" :
"http://bks6.books.google.com/books?id=NBMDtWq1MnUC&printsec=frontcover&img=1&zoo
m=5&edge=curl&source=gbs_gdata",
"publishedDate" : "2001-09-17",
"pages" : "44",
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/b24aa5fa-de50-4021-b7c4-ac4d3a918129",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=b24aa5fa-de50-4021-b7c4-ac4d3a918129"
}
}, {
"type" : "youtube",
"uuid" : "dd26b4ac-9592-4062-bd15-cb9691bfe9a3",
"description" : "Test Your Awareness: Do The Test",
"videoId" : "Ahg6qcgoay4",
"uploader" : "dothetest",
"uploadedDate" : "2008-03-10T12:30:17.000-05:00",
"viewUrl" :
"http://www.youtube.com/v/Ahg6qcgoay4?version=3&f=videos&c=EQUELLA&app=youtube_gd
ata",
"thumbUrl" : "http://i.ytimg.com/vi/Ahg6qcgoay4/default.jpg",
"tags" : "test, awareness, basketball, visual, do, the, attention, span,
bike, ad, cycling, TFL, safety, moonwalking, bear",
"duration" : 69,
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/dd26b4ac-9592-4062-bd15-cb9691bfe9a3",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea-
38 | P a g e
7aa31b449c0e/1/?attachment.uuid=dd26b4ac-9592-4062-bd15-cb9691bfe9a3"
}
}, {
"type" : "flickr",
"uuid" : "221b8a48-3a35-4d29-ad3a-0f04a1536b3b",
"description" : "Gold C64",
"author" : "FRaNKy--",
"datePosted" : "2006-10-23T14:46:16.000-05:00",
"dateTaken" : "2006-10-20T21:50:12.000-05:00",
"licenseName" : "All Rights Reserved",
"viewUrl" : "http://flickr.com/photos/19017538@N00/277527331",
"thumbUrl" : "http://farm1.staticflickr.com/88/277527331_ab0fa4348e_t.jpg",
"licenseCode" : "not-for-display",
"licenseKey" : "0",
"photoId" : "277527331",
"mediumUrl" : "http://farm1.staticflickr.com/88/277527331_ab0fa4348e.jpg",
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/221b8a48-3a35-4d29-ad3a-0f04a1536b3b",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=221b8a48-3a35-4d29-ad3a-0f04a1536b3b"
}
}, {
"type" : "itunesu",
"uuid" : "20196bbc-7f5f-44a4-980d-55dab4e6eec9",
"description" : "SGA Roundup 01-31-11",
"playUrl" :
"http://deimos.apple.com/WebObjects/Core.woa/Browsev2/utm.edu.6530144102",
"trackName" : "SGA Roundup 01-31-11",
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/20196bbc-7f5f-44a4-980d-55dab4e6eec9",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=20196bbc-7f5f-44a4-980d-55dab4e6eec9"
}
}, {
"type" : "package-res",
"uuid" : "bb4f8b1d-8760-4082-a4bc-c3cea9ad0ce7",
"description" : "index.html",
"filename" : "The vile vendor go figure.zip/index.html",
"size" : 0,
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/bb4f8b1d-8760-4082-a4bc-c3cea9ad0ce7",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=bb4f8b1d-8760-4082-a4bc-c3cea9ad0ce7"
}
}, {
"type" : "package",
"uuid" : "034dfcb7-b66a-45bf-98c8-03da9011c74d",
"description" : "The vile vendor: go figure",
"size" : 21718,
"packageFile" : "The vile vendor go figure.zip",
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/034dfcb7-b66a-45bf-98c8-03da9011c74d",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea-
39 | P a g e
7aa31b449c0e/1/?attachment.uuid=034dfcb7-b66a-45bf-98c8-03da9011c74d"
}
}, {
"type" : "package-res",
"uuid" : "6553c4bf-38f1-43f5-a58a-91ddfa4ff30f",
"description" : "index.html",
"filename" : "The vile vendor go figure.zip/index.html",
"size" : 0,
"links" : {
"thumbnail" : "http://institution.edu/thumbs/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/6553c4bf-38f1-43f5-a58a-91ddfa4ff30f",
"view" : "http://institution.edu/items/2f6e9be8-897d-45f1-98ea7aa31b449c0e/1/?attachment.uuid=6553c4bf-38f1-43f5-a58a-91ddfa4ff30f"
}
} ],
"navigation" : {
"showUnreferencedAttachments" : false,
"showSplitOption" : false,
"nodes" : [ {
"uuid" : "49ffd9d1-cc47-4fce-ae49-897ca0a54024",
"name" : "avatar.png",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "63862d54-1b6d-4dce-9a79-44b3a8c9e107"
},
"viewer" : ""
} ],
"nodes" : [ {
"uuid" : "44d6eaa6-1a1a-4cff-94d9-31e8bb871d73",
"name" : "Book!",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "b24aa5fa-de50-4021-b7c4-ac4d3a918129"
},
"viewer" : ""
} ],
"nodes" : [ {
"uuid" : "fadf767b-9715-4e33-80fb-ac49bce869ae",
"name" : "Web Page",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "78a2de74-96de-48de-8865-22856c22ae49"
},
"viewer" : ""
} ],
"nodes" : [ ]
} ]
} ]
}, {
"uuid" : "0cc07c84-fba7-491f-970b-2abb623ac962",
"name" : "Gold C64",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
40 | P a g e
"$ref" : "221b8a48-3a35-4d29-ad3a-0f04a1536b3b"
},
"viewer" : ""
} ],
"nodes" : [ {
"uuid" : "4961186a-7bb1-46ca-a0b9-a92ec7cd5777",
"name" : "Google",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "32a79ea6-8b67-4b38-af85-341b2d512f09"
},
"viewer" : ""
} ],
"nodes" : [ ]
} ]
}, {
"uuid" : "f074109b-e0fa-4404-9296-848a12034ff5",
"name" : "SearchStemming - Walking",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "32f45d7c-6df7-44d8-926a-3d6f841c2009"
},
"viewer" : ""
}, {
"name" : "Tab 2",
"attachment" : {
"$ref" : "63862d54-1b6d-4dce-9a79-44b3a8c9e107"
},
"viewer" : ""
} ],
"nodes" : [ {
"uuid" : "4ef8419a-1d76-478e-b58c-80022fedf4ce",
"name" : "Test Your Awareness: Do The Test",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "dd26b4ac-9592-4062-bd15-cb9691bfe9a3"
},
"viewer" : ""
} ],
"nodes" : [ {
"uuid" : "529882e2-16ce-46c3-bd87-b66f4365c49f",
"name" : "SGA Roundup 01-31-11",
"tabs" : [ {
"name" : "Tab 1",
"attachment" : {
"$ref" : "20196bbc-7f5f-44a4-980d-55dab4e6eec9"
},
"viewer" : ""
} ],
"nodes" : [ ]
} ]
} ]
}, {
"uuid" : "89b8bbd5-8d67-4ae5-a531-b4b8e2957cf2",
41 | P a g e
42 | P a g e
Expand Operations lists the available operations for each endpoint with a
parameter dialog.
An example of the search end point operation search parameter dialog is shown in
Figure 7.
43 | P a g e
44 | P a g e
45 | P a g e
46 | P a g e