Difference between revisions of "Zaqar/specs/api/v1/responsecodes"
< Zaqar | specs/api/v1
(→Get a Specific Message) |
m (Malini moved page Marconi/specs/api/v1/responsecodes to Zaqar/specs/api/v1/responsecodes: Project Rename) |
||
(26 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | * In | + | * In case of error, the response body will have a message appropriate to the scenario |
* Any http operation , other than the specified will return a 405 (?) | * Any http operation , other than the specified will return a 405 (?) | ||
=== '''Create Queue ''' === | === '''Create Queue ''' === | ||
Line 7: | Line 7: | ||
! Scenario !! HTTP Response Code | ! Scenario !! HTTP Response Code | ||
|- | |- | ||
− | |Success ( | + | |Success (Created) || 201 |
|- | |- | ||
− | |Success ( | + | |Success (Already exists) || 204 |
|- | |- | ||
− | | | + | | Queue has a long name (>64 bytes)|| 400 |
− | |||
− | |||
|- | |- | ||
| Request header has missing fields || 400 | | Request header has missing fields || 400 | ||
|- | |- | ||
| Request header has invalid auth token || 401 | | Request header has invalid auth token || 401 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
Line 50: | Line 34: | ||
| Request with zero value for limit || 400 || | | Request with zero value for limit || 400 || | ||
|- | |- | ||
− | | Request with non existing value of marker || 204 | + | | Request with non existing value of marker || 200 or 204 || A marker always "exists" in the sense that we can always perform a range comparison with it. In other words, if you pass 'g' for the marker, Marconi will return all queue's whose names sort after 'g', lexicographically. If you pass a marker that sorts after all existing queues, you will receive "204 No Content" in response. |
|- | |- | ||
| Request with non boolean value for metadata || 400 || lowercase true/false? | | Request with non boolean value for metadata || 400 || lowercase true/false? | ||
Line 64: | Line 48: | ||
=== '''Set Queue Metadata ''' === | === '''Set Queue Metadata ''' === | ||
− | + | {| class="wikitable" | |
+ | |- | ||
+ | | Success || 204 | ||
+ | |- | ||
+ | | Request Body is Empty || 400 | ||
+ | |- | ||
+ | | Request header has Accept != "application/json" || 406 | ||
+ | |- | ||
+ | | Request body is >64KB || 400 | ||
+ | |- | ||
+ | | Request body has malformed JSON || 400 | ||
+ | |- | ||
+ | | Request with non JSON body|| 400 | ||
+ | |- | ||
+ | | Request with UTF-16 char JSON body|| | ||
+ | |} | ||
=== '''Get Queue Metadata ''' === | === '''Get Queue Metadata ''' === | ||
Line 72: | Line 71: | ||
|- | |- | ||
| Success || 200 | | Success || 200 | ||
+ | |- | ||
+ | | No metadata exists for the queue || 200 | ||
|- | |- | ||
| Request metadata for a non existing queue || 404 | | Request metadata for a non existing queue || 404 | ||
Line 140: | Line 141: | ||
| Request message with limit <= 0 || 400 | | Request message with limit <= 0 || 400 | ||
|- | |- | ||
− | | Request message with non existing marker || | + | | Request message with non existing marker || 204 |
|- | |- | ||
| Request message with non boolean value for echo || 400 | | Request message with non boolean value for echo || 400 | ||
Line 152: | Line 153: | ||
|} | |} | ||
− | === '''Get | + | === '''Get a Specific Message''' === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
|- | |- | ||
− | | | + | | Success (query matched the messages) ||200 |
|- | |- | ||
− | | Request | + | | Request message from a non existing queue || 404 |
|- | |- | ||
− | | Request message | + | | Request a non existing message || 404 |
|- | |- | ||
− | | Request message | + | | Request an expired message || 404 |
− | |||
− | |||
|- | |- | ||
| Header has Accept != "application/json" || 406 | | Header has Accept != "application/json" || 406 | ||
Line 172: | Line 171: | ||
|- | |- | ||
| Header has invalid auth token|| 401 | | Header has invalid auth token|| 401 | ||
+ | |- | ||
+ | | URL has invalid params ||200 | ||
|- | |- | ||
|} | |} | ||
− | === '''Get a | + | === '''Get a Set of Messages By ID''' === |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Scenario!! HTTP Response Code | ! Scenario!! HTTP Response Code | ||
|- | |- | ||
− | | Success | + | | Success ||200 |
|- | |- | ||
− | | Success | + | | Partial Success|| |
|- | |- | ||
− | | Request | + | | Request non existing messages || 404 |
|- | |- | ||
− | | Request | + | | Request expired messages || 404 |
− | |||
− | |||
|- | |- | ||
| Header has Accept != "application/json" || 406 | | Header has Accept != "application/json" || 406 | ||
Line 199: | Line 198: | ||
|- | |- | ||
|} | |} | ||
− | |||
=== '''Post Message(s)''' === | === '''Post Message(s)''' === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
+ | |- | ||
+ | | Success || 201 | ||
|- | |- | ||
| Post multiple messages in a single request , all of them fails || 503 | | Post multiple messages in a single request , all of them fails || 503 | ||
Line 227: | Line 227: | ||
|Post with non int value of TTL || 400 | |Post with non int value of TTL || 400 | ||
|- | |- | ||
− | |Post with negative value of TTL || | + | |Post with negative value of TTL || 400 |
|- | |- | ||
|Post without TTL in request body|| 400 | |Post without TTL in request body|| 400 | ||
Line 250: | Line 250: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
+ | |- | ||
+ | | Success || 204 | ||
|- | |- | ||
| Delete message from a non existing queue || 204 | | Delete message from a non existing queue || 204 | ||
Line 259: | Line 261: | ||
|- | |- | ||
| Delete with non existing claim_id || 403 | | Delete with non existing claim_id || 403 | ||
+ | |- | ||
+ | | Delete claimed message without providing a claim_id || 403 | ||
|- | |- | ||
| Header has Accept != "application/json" || 406 | | Header has Accept != "application/json" || 406 | ||
Line 273: | Line 277: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
+ | |- | ||
+ | | Success || 200 | ||
+ | |- | ||
+ | | Success (empty queue with no messages to claim) || 204 | ||
|- | |- | ||
− | | Claim message from a non existing queue || | + | | Claim message from a non existing queue || 204 |
|- | |- | ||
| Claim message with invalid value for limit (nonint, <=0) || 400 | | Claim message with invalid value for limit (nonint, <=0) || 400 | ||
Line 302: | Line 310: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
+ | |- | ||
+ | | Success || 200 | ||
|- | |- | ||
| Query Expired Claim || 404 | | Query Expired Claim || 404 | ||
Line 323: | Line 333: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
+ | |- | ||
+ | | Success || 204 | ||
|- | |- | ||
| Update Expired Claim || 404 | | Update Expired Claim || 404 | ||
Line 350: | Line 362: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | ! Scenario!! HTTP Response Code |
+ | |- | ||
+ | | Success || 204 | ||
|- | |- | ||
| Release Expired Claim || 204 | | Release Expired Claim || 204 | ||
Line 370: | Line 384: | ||
<references> | <references> | ||
<ref name="ref1">DELETE is an idempotent operation.</ref> | <ref name="ref1">DELETE is an idempotent operation.</ref> | ||
− | |||
− | |||
− | |||
− | |||
</references> | </references> |
Latest revision as of 18:42, 7 August 2014
- In case of error, the response body will have a message appropriate to the scenario
- Any http operation , other than the specified will return a 405 (?)
Contents
Create Queue
Scenario | HTTP Response Code |
---|---|
Success (Created) | 201 |
Success (Already exists) | 204 |
Queue has a long name (>64 bytes) | 400 |
Request header has missing fields | 400 |
Request header has invalid auth token | 401 |
List Queues
Scenario | HTTP Response Code | Notes |
---|---|---|
Success | 200 | |
Request a non existing queue | 404 | |
URL has invalid param (something other than limit,marker,metadata) | 200 | Extra params are ignored. |
Request with negative value for limit | 400 | |
Request with zero value for limit | 400 | |
Request with non existing value of marker | 200 or 204 | A marker always "exists" in the sense that we can always perform a range comparison with it. In other words, if you pass 'g' for the marker, Marconi will return all queue's whose names sort after 'g', lexicographically. If you pass a marker that sorts after all existing queues, you will receive "204 No Content" in response. |
Request with non boolean value for metadata | 400 | lowercase true/false? |
Header has Accept != "application/json" | 406 | |
Header has missing fields | 400 | |
Header has invalid auth token | 401 |
Set Queue Metadata
Success | 204 |
Request Body is Empty | 400 |
Request header has Accept != "application/json" | 406 |
Request body is >64KB | 400 |
Request body has malformed JSON | 400 |
Request with non JSON body | 400 |
Request with UTF-16 char JSON body |
Get Queue Metadata
Scenario | HTTP Response Code |
---|---|
Success | 200 |
No metadata exists for the queue | 200 |
Request metadata for a non existing queue | 404 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Get Queue Stats
Scenario | HTTP Response Code |
---|---|
Success | 200 |
Request stats for a non existing queue | 404 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Delete Queue
Scenario | HTTP Response Code |
---|---|
Success | 204 |
Delete a non existing queue | 204 [1] |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Get Messages
Scenario | HTTP Response Code |
---|---|
Success (query matched 1 or more messages) | 200 |
Success (query has no match) | 204 |
Request message from a non existing queue | 404 |
Request message with invalid param (something other than marker,limit,echo) | 200 |
Request message with limit >100 | 400 |
Request message with limit <= 0 | 400 |
Request message with non existing marker | 204 |
Request message with non boolean value for echo | 400 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
Get a Specific Message
Scenario | HTTP Response Code |
---|---|
Success (query matched the messages) | 200 |
Request message from a non existing queue | 404 |
Request a non existing message | 404 |
Request an expired message | 404 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Get a Set of Messages By ID
Scenario | HTTP Response Code |
---|---|
Success | 200 |
Partial Success | |
Request non existing messages | 404 |
Request expired messages | 404 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Post Message(s)
Scenario | HTTP Response Code |
---|---|
Success | 201 |
Post multiple messages in a single request , all of them fails | 503 |
Post multiple messages in a single request , few of them succeed | 201 (with "partial": true) [2] |
Post message to a non existing queue | 404 |
Post > 100 messages with a single request | 400 |
Post with request body > 4KB | 400 |
Post with invalid JSON request body | 400 |
Post with non-JSON request body | 400 |
Post with non-JSON message | 400 |
Post with TTL < 60 | 400 |
Post with TTL > 1209600 | 400 |
Post with non int value of TTL | 400 |
Post with negative value of TTL | 400 |
Post without TTL in request body | 400 |
Post without "body" in request body | 400 |
Post with no request body | 400 |
Post with messages encapsulated in multiple arrays | 400 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Delete Messages
Scenario | HTTP Response Code |
---|---|
Success | 204 |
Delete message from a non existing queue | 204 |
Delete a non existing message | 204 |
Delete with expired claim_id | 403 |
Delete with non existing claim_id | 403 |
Delete claimed message without providing a claim_id | 403 |
Header has Accept != "application/json" | 406 |
Header has missing fields | 400 |
Header has invalid auth token | 401 |
URL has invalid params | 200 |
Claim Messages
Scenario | HTTP Response Code |
---|---|
Success | 200 |
Success (empty queue with no messages to claim) | 204 |
Claim message from a non existing queue | 204 |
Claim message with invalid value for limit (nonint, <=0) | 400 |
Claim message with limit >100) | 400 |
Claim message with no request body | 400 |
Claim message with no TTL field | 400 |
Claim message with invalid TTL value (non int, <=0) | 400 |
Claim message with invalid JSON | 400 |
Claim message with non JSON request body | 400 |
Claim message with invalid auth token | 401 |
Claim message with missing header fields | 400 |
Header has Accept != "application/json" | 406 |
Query Claim
Scenario | HTTP Response Code |
---|---|
Success | 200 |
Query Expired Claim | 404 |
Query Claim from a non existing queue | 404 |
Query Claim with invalid auth token | 401 |
Query Claim with missing header fields | 400 |
Query Claim with invalid URL params | 200 |
Query Claim with non existing claim_id | 404 |
Header has Accept != "application/json" | 406 |
Update Claim
Scenario | HTTP Response Code |
---|---|
Success | 204 |
Update Expired Claim | 404 |
Update Claim on a non existing queue | 404 |
Update a non existing claim | 404 |
Update claim with invalid URL params | 200 |
Update claim with content-type != application/json-patch | 406 |
Update claim with no request body | 400 |
Update claim with invalid JSON in request body | 400 |
Update claim with non JSON request body | 400 |
Update Claim with invalid auth token | 401 |
Update Claim with missing header fields | 400 |
Release Claim
Scenario | HTTP Response Code |
---|---|
Success | 204 |
Release Expired Claim | 204 |
Release Claim from a non existing queue | 404 |
Release a non existing claim | 204 |
Release claim with invalid URL params | 200 |
Release Claim with invalid auth token | 401 |
Release Claim with missing header fields | 400 |
Header has Accept != "application/json" | 406 |
- ↑ DELETE is an idempotent operation.
- ↑ postmessage api wiki