Skip to content

REST API

ivan770 edited this page Dec 21, 2020 · 4 revisions

REST API documentation

General

Message fields

  • id - ID in UUID format.
  • body - Message body (UTF-8 string).
  • state.status - Message status (Available or Transit).
  • state.tries - Reservation tries.
  • state.max_tries - Max reservation tries. If current count is equal to max count, then GC will collect the message.
  • time.offset - Timezone offset in seconds. For example, offset of timezone UTC+3 is 10800.
  • time.timestamp - RFC 3339 datetime of message push.
  • time.delay - RFC 3339 datetime of message delay.
  • time.timeout.max - Max execution time of message in seconds.
  • time.timeout.obtained_at - RFC 3339 datetime of message reservation.

Errors

Queue not found

HTTP status code: 404

Queue not found

Pop message from queue

Schema

GET /<queue>

Response (success)

{
    "message": {
        "id": "123e4567-e89b-12d3-a456-426655440000",
        "body": "Test",
        "state": {
            "status": "Transit",
            "tries": 1,
            "max_tries": 3
        },
        "time": {
            "dispatched_at": "2020-12-21T14:33:25+01:00",
            "delay": "2020-12-21T14:33:30+01:00",
            "timeout": {
                "max": 60,
                "obtained_at": "2020-12-21T14:33:35+01:00"
            }
        }
    }
}

Response (no message available)

HTTP status code: 404

No message available

Description

Pop first available message.

Messages without delay are returned in order that they are sent.

Send message to queue

Schema

POST /<queue>

Request

{
    "body": "Test",
    "max_tries": 3,
    "timeout": 60,
    "offset": 3600,
    "delay": 10
}

Response

null

Description

Send message to queue.

Only body key is required, as every other key has a default value:

{
    "max_tries": 1,
    "timeout": 30,
    "offset": 0,
    "delay": null
}

Delete message from queue

Schema

DELETE /<queue>

Request

{
    "id": "123e4567-e89b-12d3-a456-426655440000"
}

Response (success)

{
    "message": {
        "id": "123e4567-e89b-12d3-a456-426655440000",
        "body": "Test",
        "state": {
            "status": "Transit",
            "tries": 1,
            "max_tries": 3
        },
        "time": {
            "dispatched_at": "2020-12-21T14:33:25+01:00",
            "delay": "2020-12-21T14:33:30+01:00",
            "timeout": {
                "max": 60,
                "obtained_at": "2020-12-21T14:33:35+01:00"
            }
        }
    }
}

Response (message not found)

HTTP status code: 404

Message not found

Description

Delete message from queue.

Return message to queue

Schema

POST /<queue>/requeue

Request

{
    "id": "123e4567-e89b-12d3-a456-426655440000"
}

Response (success)

null

Response (message not found)

HTTP status code: 404

Message not found

Description

Return message to queue, incrementing its try count.

Message will be collected by GC if there are no more tries left.

Get queue size

Schema

GET /<queue>/size

Response (success)

{
    "size": 1
}

Description

Get queue message count.

Clear queue

Schema

POST /<queue>/clear

Response (success)

null

Description

Delete all messages in queue.