-
Notifications
You must be signed in to change notification settings - Fork 0
User Manual
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"]}