Jump to: navigation, search

Storage API

Overview

The Storage API is a 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 the creation of a new storage area in Genesys Mobile Services (GMS).

Starting 8.5.103.xx, this operation requires the gms_user header to be passed to associate the custom_id to the customer. To retrieve the stored value, you also need to pass the gms_user header.

Operation

Method POST
URL /genesys/1/storage/custom/{customId}/{ttl}
Parameter   Type   Mandatory Description
URI Parameters
{customId} string yes Custom ID of the storage. Available starting 8.5.103.xx
{ttl} number yes The time to live for this data, specified in seconds.  The data is automatically deleted after it has been stored for {ttl} seconds. The ttl must be greater than zero (0). If an incorrect value is specified, a default of 30 seconds is defined.
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 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 it has been stored for {ttl} seconds. The ttl must be greater than zero (0). If an incorrect value is specified, a default of 30 seconds is defined.
Body: A MultiPart form consisting of different items representing the key/value pairs to store.  This may be string 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/stor
age/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 one 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 specifically 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 one 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 specifically 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

Samples

Storage API HTML Sample

Notes

Keys may not begin with an underscore (_).

This page was last edited on July 4, 2017, at 15:03.
Comments or questions about this documentation? Contact us for support!