Skip to content
mrutid edited this page Jul 12, 2012 · 29 revisions

In order to obtain JSON responses include "accept":application/json in request header. ##Provision An HTTP request with content-type: application/json

##Entry Point: ###HTTP-POST:[3001] [host]/trans

####POST-DATA: The body must be a JSON with the data for provision The object must contain a payload, a priority (H or L) and a list ('queue') of objects with an 'id' property, for the target devices Optionally a callback, expirationDat could be set as an UNIXTIMESTAMP

Provision.json

{
"payload": "MESSAGE",
"priority":"H",
"callback":"http://foo.bar",
"queue":[
{"id":"Ax"},
{"id":"Bx"}
],
"expirationDate": 1340880820 //UNIXTIMESTAMP 
}

###Response: The response is an object with an 'id' field with the id of the provisioned transaction. In case of error, the response will be a 400 and an object with a list of error messages in its "error" property

HTTP/1.1 200 OK content-type: application/json
{"ok":true, "data":"d84814f0-6776-11e1-a330-3324e9d100c2"}

HTTP/1.1 400 Bad Request content-type: application/json
{"errors":["undefined priority","undefined payload"]}

#Consumer Allows to retrieve the device messages, the id device must be append to the URL.

##Entry Point: ###HTTP-POST:[3001] [host]/queue/[id]/pop

###GET PARAMS: "timeout": if the queue is empty , it will wait the value in seconds before returning an empty list ([]) or data arrived during the waiting period as soon as it arrives "max" : maximum number of mesages to retrieve. If there are more, they will be in te queue for later requests

###Response: The response is a list with the messages as strings. if there are no messages an empty list will be returned ([])

HTTP/1.1 200 OK content-type: application/json
{"ok":true, "data":["MSG ALTA prioridad 1","MSG BAJA prioridad 2"]}

#Transaction State in queues Provide information about transaction's states (All, Pending, Delivered, Expired)

##Entry Point HTTP-GET:[3001] /trans/[transaction_id]?queues=[summary|All|Pending|Delivered|Expired] Shows the state of the message on each queue of the transaction ###Response:

All
{"ok":true, "data":{"q1":"Pending","q2":"Delivered"}}

Pending
{"ok":true, "data":{"q1":"Pending"}}

Delivered
{"ok":true, "data":{"q2":"Delivered"}}

Summary
{"ok":true, "data":{"total_notifications":2,"Pending":1,"Delivered":1}}

#Transaction info Get the metainformation related to a given transaction

##Entry point HTTP-GET:[3001] /trans/[transaction_id]

###Response

{"ok":true, 
"data":{
  "payload": "MESSAGE",
  "priority": "H",
  "callback":"http://foo.bar",
  "expirationDate": UNIXTIMESTAMP,
  "queue":[
    {"id":"Ax"},
    {"id":"Bx"}
  ], 
 }
}

#Queue info Get the metainformation related to a given queue

##Entry point HTTP-GET:[3001] /queue/[queue_id] ###Response Provision.json

{   "ok":true,
    "host":"localhost:3001",
    "lastPop":"1340634743",
    "size":10,
    "high":[
        {
            "id":"ae98523f-be4e-4bf9-a096-d3388c642491",
            "href":"http://localhost:3001/trans/ae98523f-be4e-4bf9-a096-d3388c642491?queues=All"
        }
    ],
    "low":[
        {
            "id":"81ae88b7-169d-4881-9300-2c8fc93aed32",
            "href":"http://localhost:3001/trans/81ae88b7-169d-4881-9300-2c8fc93aed32?queues=All"
        },
        {
            "id":"62a81dce-0dbf-4cec-b4d3-1d20934a398f",
            "href":"http://localhost:3001/trans/62a81dce-0dbf-4cec-b4d3-1d20934a398f?queues=All"
        }
    ]
}

#Modify Transaction Modify the current Transaction. This changes will apply to Pending Notifications for any of the following properties: Payload, Callback, ExpirationDate

Note that properties like Priority or the destination Queues can´t be modified.

###Entry Point HTTP-PUT:[3001] [host]/trans/[id] ####PUT/POST-DATA: Provision.json (subset)

{
"payload": "MESSAGE",
"callback":"http://foo.bar",
"expirationDate": UNIXTIMESTAMP 
}

###Response:

{"ok":"true"}
{"errors":["Redis connection to localhost:6379 failed - connect ECONNREFUSED"]}

#Delete Transaction Remove a given transaction. The behaviour will be the same as "EXPIRED" transaction. ###Entry Point HTTP-DELETE:[3001] [host]/trans/[id]

###Response:

{"ok":"true"}
{"errors":["Redis connection to localhost:6379 failed - connect ECONNREFUSED"]}
Clone this wiki locally