Jump to: navigation, search

Storage API

Overview

Storage is general purpose API that allows users to temporarily store arbitrary data.  Data may consist of key/value pairs of strings or binary objects.

API

Create

Allows for the creation of a new storage area in GMS.

Operation

Method POST
URL /genesys/1/storage/{ttl}
Parameter   Type   Mandatory Description
URI Parameters
{ttl} number yes The time to live for this data, specified in seconds.  The data is automatically deleted after is has been stored for {ttl} seconds.
Body: A MultiPart form or a URL encoded form consisting of different items representing the key/value pairs to store.

Response

A JSON object with the property id, identifying the assigned id for this storage request.

HTTP code 200
HTTP message OK

Example

The following example stores:

  • Key1, Key2, Key3 and FileKey

The time-to-live of the data is 1 hour.

Operation

Request URL:http://localhost:8080/genesys/1/storage/3600
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:13028
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryy16qocbN6tmPORZL
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/genesys/resources/storagetest.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7
Request Payload
------WebKitFormBoundaryy16qocbN6tmPORZL
Content-Disposition: form-data; name="Key1"
Value1
------WebKitFormBoundaryy16qocbN6tmPORZL
Content-Disposition: form-data; name="Key2"
Value2
------WebKitFormBoundaryy16qocbN6tmPORZL
Content-Disposition: form-data; name="Key3"
Value3
------WebKitFormBoundaryy16qocbN6tmPORZL
Content-Disposition: form-data; name="FileKey"; filename="MyPic.png"
Content-Type: image/png
------WebKitFormBoundaryy16qocbN6tmPORZL--

Result

The above data is now stored for up to 1 hour with an id of 39a98e24-b03b-4191-b756-1efe8f3b16b8.

HTTP 200 OK
{ "id":"39a98e24-b03b-4191-b756-1efe8f3b16b8" }

Update

Updates a storage area that has already been created in GMS.

Operation

Method POST
URL /genesys/1/storage/{id}/{ttl}
Parameter   Type   Mandatory Description
URI Parameters
{id} string yes The id of the allocated storage to be updated.  
{ttl} number yes The time to live for this data, specified in seconds.  The data is automatically deleted after is has been stored for {ttl} seconds.
Body: A MultiPart form consisting of different ites representing the key/value pairs to store.  This may be sting values or files.

Response

HTTP code 200
HTTP message OK

Example

The following example updates the keys:

  • Key1, Key2, Key3 and FileKey

The time-to-live for all of the keys in this update is 1 hour.

Operation

Request URL:http://localhost:8080/genesys/1/storage/b8e8eb60-3f14-493d-90da-0034aca34b55/3600
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:171539
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryPu8S1YopPtZq8Z54
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/genesys/resources/storagetest.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7
Request Payload
------WebKitFormBoundaryPu8S1YopPtZq8Z54
Content-Disposition: form-data; name="Key1"
Value6
------WebKitFormBoundaryPu8S1YopPtZq8Z54
Content-Disposition: form-data; name="Key2"
Value7
------WebKitFormBoundaryPu8S1YopPtZq8Z54
Content-Disposition: form-data; name="Key3"
Value8
------WebKitFormBoundaryPu8S1YopPtZq8Z54
Content-Disposition: form-data; name="FileKey"; filename="0016_001.pdf"
Content-Type: application/pdf
------WebKitFormBoundaryPu8S1YopPtZq8Z54--
Response Headersview source
Cache-Control:no-cache
no-store
Content-Length:2
Content-Type:application/json
Date:Sat, 04 Feb 2012 02:06:43 GMT
Pragma:no-cache
Server:Apache-Coyote/1.1

Result

The above data is now stored for up to 1 hour with an id of 39a98e24-b03b-4191-b756-1efe8f3b16b8.

HTTP 200 OK

Query (all keys)

Queries all of the keys in a storage area that has already been created in GMS.

Operation

Method GET
URL /genesys/1/storage/{id}
Parameter   Type   Mandatory Description
URI Parameters
{id} string yes The id of the allocated storage to be updated.  
Body: Not used

Response

HTTP code 200
HTTP message OK

Example

The following example queries all of the keys associated with id b8e8eb60-3f14-493d-90da-0034aca34b55

Operation

Request URL:http://localhost:8080/genesys/1/storage/b8e8eb60-3f14-493d-90da-0034aca34b55
Request Method:GET

Result

{"Key2":"Value7","Key1":"Value6","Key3":"Value8","FileKey":"http://127.0.0.1:8080/genesys/1/storage/binary/b8e8eb60-3f14-493d-90da-0034aca34b55/FileKey"

Query (one key)

Queries all of the keys in a storage area that has already been created in GMS.

Operation

Method GET
URL /genesys/1/storage/{id}/{key}
Parameter   Type   Mandatory Description
URI Parameters
{id} string yes The id of the allocated storage to be updated.  
{key} string yes The key of the specificaly requested value
Body: Not used

Response

HTTP code 200
HTTP message OK

Example

The following example queries the value of Key1 from the data associated with id b8e8eb60-3f14-493d-90da-0034aca34b55

Operation

Request URL:http://localhost:8080/genesys/1/storage/b8e8eb60-3f14-493d-90da-0034aca34b55/Key1
Request Method:GET

Result

Value1

Query (one binary key)

Queries all of the keys in a storage area that has already been created in GMS.

Operation

Method GET
URL /genesys/1/storage/binary/{id}/{key}
Parameter   Type   Mandatory Description
URI Parameters
{id} string yes The id of the allocated storage to be updated.  
{key} string yes The key of the specificaly requested value
Body: Not used

Response

HTTP code 200
HTTP message OK
Body The file that was stored for the specified key.

Example

The following example queries the value of Key1 from the data associated with id b8e8eb60-3f14-493d-90da-0034aca34b55

Operation

Request URL:http://localhost:8080/genesys/1/storage/binary/b8e8eb60-3f14-493d-90da-0034aca34b55/FileKey
Request Method:GET

Delete

Deletes all of the keys in a storage area that has already been created in GMS.

Operation

Method DELETE
URL /genesys/1/storage/{id}
Parameter   Type   Mandatory Description
URI Parameters
{id} string yes The id of the allocated storage to be deleted.
Body: Not used

Response

HTTP code 200
HTTP message OK

Example

The following example deletes all of the keys associated with id b8e8eb60-3f14-493d-90da-0034aca34b55

Operation

Request URL:http://localhost:8080/genesys/1/storage/b8e8eb60-3f14-493d-90da-0034aca34b55
Request Method:DELETE

Configuration

This section will describe configuration that is specific to this API.

Samples

Storage API HTML Sample

Notes

The Time-To-Live of the data is expressed as a 32-bit integer in seconds. This gives a max value of around 65 years.

Keys may not begin with an _.

This page was last modified on May 14, 2013, at 15:27.

Feedback

Comment on this article:

blog comments powered by Disqus