Docs for REST Queue Metadata operations are unclear RRS feed

  • General discussion

  • The Set Queue Metadata docs state that:

    If this operation is performed without specifying at least one header, any existing metadata on the queue is removed.

    This makes it sound like metadata is durable across multiple requests for this operation, except when no metadata is provided this causes all existing metadata to be removed. But in fact, using the current REST API, all metadata key-value pairs are reset on each Set Queue Metadata operation. So the effect is that in order to add metadata to a queue, it must first be queried, then extended/appended, and reset.

    Further to this issue; I can't find what the relationship is between metadata manipulated with Set/Get Queue Metadata operations, and that returned by List Queues operation. It seems in practice there is no relationship, i.e., setting metadata via Set Queue Metadata does not result in any metadata being returned with an appropriately formulated List Queues request. I'm just guessing, because I haven't bothered implementing this bit, that List Queues only returns metadata set with the Create Queue operation? If someone could confirm that would be great, and better still, update the docs to reflect that there are actually two different types of metadata on queues.

    Thursday, November 10, 2011 11:34 AM

All replies

  • The get list operation would be consistent (somewhat) with blobs. Where a seperate call is required to retrieve the metadata for a blob object.

    Can't speak to the documentation disparity you're seeing though.

    Thursday, November 10, 2011 12:14 PM
  • I believe the documentation is a bit misleading here. I've flagged it for the doc team so they can confirm and update the documentation as needed.

    As to the listing question, I believe if you specify "include=metadata" in the query string, you'll get back the metadata for each queue in the list. It shouldn't matter when you set the metadata.

    Saturday, November 12, 2011 10:30 PM
  • Documentation will get updated soon to be clearer. Probably something like this text:

    Each call to this operation replaces all existing metadata attached to the queue. To remove all metadata from the queue, call this operation with no metadata headers.

    Monday, November 14, 2011 6:24 PM