1.8 REST Services - jmstoolbox/jmstoolbox GitHub Wiki
JMSToolBox exposes some features as REST services. A REST listener is managed by JMSToolBox on a given port (9998 by default). The REST calls uses the artefacts (sessions, templates, scripts) configured in JMSToolBox to perform actions as described below This feature allows external tools to be used in various automated scripts or tests scenarios that involve dealing with Q Managers and JMS messages JMSToolBox REST services currently consumes and produces data in JSON format
In the preference pages, it is possible to configure this feature by setting:
- The port number where the REST listener will listen on
- If the REST listener is activated when JMSToolBox starts
The "REST Connector" menu allows to start, stop and see the status of the the REST connector
Verb | URI | Body | Result | Description |
---|---|---|---|---|
GET | /rest/session/{sessionName} | n/a | List<Destination> | Get destination names defined at {sessionName} |
Verb | URI | Body | Result | Description |
---|---|---|---|---|
GET | /rest/queues/{sessionName}/depth | n/a | List<Queue> | Get queue depth for all queues defined at {sessionName} |
GET | /rest/queues/{sessionName}/depth/{queueName} | n/a | List<Queue> | Get queue depth for queue {queueName} defined at {sessionName} |
Verb | URI | Body | Query Params | Result | Description |
---|---|---|---|---|---|
GET | /rest/message/{sessionName}/{destinationName} | n/a | limit=n jmsSelector=<jms selector> payloadSearch=<search text> |
List<Message> | Get the first <n> (Default 200) messages from {sessionName}::{destinationName} |
POST | /rest/message/{sessionName}/{destinationName} | MessageInput | - | Message | Post/Publish a TextMessage, MapMessage or "JMS Message" message to {sessionName}::{destinationName} |
POST | /rest/message/{sessionName}/{destinationName}/{templateName} | - | - | Message | Post/Publish a message to {sessionName}::{destinationName} from {templateName}. Currently, the template must be defined at the root of the system Template folder |
PUT | /rest/message/{sessionName}/{destinationName} | n/a | limit=n jmsSelector=<jms selector> |
List<Message> | "Consume" (=MessageConsumer.Receive() ) the first <n> (default=1) messages from {sessionName}::{destinationName} |
DELETE | /rest/message/{sessionName}/{queueName} | n/a | - | - | Empty queue {sessionName}::{queueName} |
Verb | URI / Description | Body / Result |
---|---|---|
POST | /rest/script | ScriptInput |
Execute a script | ScriptOutput |
MessageInput:
{
"deliveryMode" : "<PERSISTENT|NON_PERSISTENT>",
"priority" : "<[0-9]>",
"deliveryDelay" : "<n>",
"timeToLive" : "<n>",
"jmsCorrelationID" : "",
"jmsType" : "",
"type" : "<TEXT|MAP|MESSAGE>",
"replyTo" : "",
"payloadText" : "",
"payloadMap" : {"p1":"","p2":""},
"properties" : {"p1":""}
}
Remarks:
-
TEXT messages payload is held in the
payloadText
variable -
MAP messages payload is held in the
payloadMap
variable
Message (example):
{
"jtbMessageType": "TEXT",
"jmsMessageID": "ID:414d51204d5120202020202020202020f9aef762026e0040",
"jmsPriority": 4,
"jmsDestination": "queue:///DEV.QUEUE.1",
"jmsCorrelationID": "abcd",
"jmsDeliveryMode": "PERSISTENT",
"jmsDeliveryTime": "2022-08-13 10:43:14.954",
"jmsTimestamp": "2022-08-13 10:43:14.954",
"jmsRedelivered": false,
"properties": {
"JMSXAppID": "JMSToolBox ",
"JMSXDeliveryCount": "0",
"JMSXUserID": "app ",
"JMS_IBM_PutApplType": "28"
"JMS_IBM_PutDate": "20220813",
"JMS_IBM_PutTime": "14431474",
},
"payloadText": "hello"
}
Queue:
[
{
"name": "QUEUE1",
"depth": 11
},
{
"name": "QUEUE2",
"depth": 0
}
]
ScriptInput:
{
"scriptName" : "",
"simulation" : "<true|false>",
"nbMessagesMax" : "<n>",
}
ScriptOutput:
{
"nbMessages" : "<n>",
}