Jump to: navigation, search

Difference between revisions of "Zaqar/specs/api/next"

(HTTP)
(Marconi API - Next)
Line 22: Line 22:
 
* Is content-location header really necessary?
 
* Is content-location header really necessary?
 
* Polling model is based on the assumption of a "streaming" interaction model. Is there a place for a "point in time" listing model, where you don't always get a "next" href?
 
* Polling model is based on the assumption of a "streaming" interaction model. Is there a place for a "point in time" listing model, where you don't always get a "next" href?
 +
* Query parameters are usually considered to be "optional", and yet DELETE queues/my-queue/messages requires an "ids" parameter.

Revision as of 18:01, 24 October 2013

Marconi API - Next

Brainstorming page for API improvements. The ideas below need to be discussed with the Marconi team and the OS community. They will be turned into blueprints as appropriate.

Generic

  • Auto-generate client UUID if not given
  • Clearly define whether client ID is required for every request, and enforce it in the implementation
  • Consider allowing opaque string for client ID rather than UUID (will need to understand what else people want to use?)
  • Remove deprecated "partial results" semantics from message posting
  • Include Client ID in claim data
  • Include claim information when listing messages and retrieving individual messages
  • List claims for a given queue

HTTP

  • Return an href for deleting all claimed messages with a single call
  • Allow PUTing metadata when creating a queue
  • 204 vs. 200 + empty array
  • Consistency around response envelope for /messages vs /messages?ids
  • Return full URIs in location/content-location headers (rather than relative ones)
  • Is content-location header really necessary?
  • Polling model is based on the assumption of a "streaming" interaction model. Is there a place for a "point in time" listing model, where you don't always get a "next" href?
  • Query parameters are usually considered to be "optional", and yet DELETE queues/my-queue/messages requires an "ids" parameter.