Just finished draft 4 of REST-* Messaging. Please check our our discussion group if you want to talk more about it. Here’s a list of resources and their corresponding relationships for a high level overview. See the spec for more details. It relies heavily on Link headers. The current draft shows a lot of example HTTP request/responses to give you a good idea of what is going on.
A queue or a topic resource.
- post-message – link to POST/create a message to a queue or topic. This can be
- post-message-once – link to POST/create a message to a queue or topic using the POST-Once-Exactlly (POE) pattern
- post-batch – POST/create a batch of messages using Atom or Multipart
- post-batch-once – POST/create a batch using the POE pattern.
Every message posted creates a message resource that can be viewed for adminstration, auditing, monitoring, or usage.
- reply-to. Destination that you can reply to
- reply-to-once. Destination that you can reply to once using the POST-Only-Once pattern
- reply-to-batch. Destination that you can reply with a batch of messages
- reply-to-batch-once. Batch using POE.
- next. If pulling from a topic, messages will have this link. This is the next message after this one.
- acknowledgement. If pulling from a queue, this link allows you to change the state of the message to acknowleged or not.
- generator, Destination that the message came from
Has the same links as Destination with these added:
- next. GET the next incoming message. Clients should use the Accept-Wait header to set a blocking timeout (see later).
- last. Last posted message to the topic
- first. First message posted to topic, or, the first message that is still around.
- subscribers. URL that allows you to view (GET) or create/register (POST) a list of URLs to forward messages to.
Same as Destination, but these additional link relationships:
- poller. Alias to the next available message in the queue. Returns a message representation along with a Content-Location header pointing to the real one. a POST is required to access this because the state of the queue is changed.
- subscribers. Same as topic push model.