Zaqar/specs/api/v1.1/errors
< Zaqar | specs/api/v1.1
- 发生错误时,响应体将包含适合该场景的消息
- 任何 HTTP 操作,除了指定的操作外,都将返回 405 (?)
目录
创建队列
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 (已创建) | 201 |
| 成功 (已存在) | 204 |
| 队列名称过长(>64 字节) | 400 |
| 请求头缺少字段 | 400 |
| 请求头包含无效的认证令牌 | 401 |
列出队列
| 场景 | HTTP 响应代码 | 笔记 |
|---|---|---|
| 成功 | 200 | |
| 请求不存在的队列 | 404 | |
| URL 包含无效参数(除了 limit、marker、metadata 之外) | 200 | 额外的参数将被忽略。 |
| 请求中 limit 的值为负数 | 400 | |
| 请求中 limit 的值为零 | 400 | |
| 请求中 marker 的值不存在 | 200 或 204 | marker 始终“存在”,因为我们可以始终使用它执行范围比较。换句话说,如果您将 'g' 作为 marker 传递,Marconi 将返回名称在 'g' 之后(按字典顺序)的所有队列。如果您传递一个排序在所有现有队列之后的 marker,您将收到“204 No Content”响应。 |
| 请求中 metadata 的值为非布尔值 | 400 | lowercase true/false? |
| Header has Accept != "application/json" | 406 | |
| Header has missing fields | 400 | |
| Header has invalid auth token | 401 |
设置队列元数据
| 成功 | 204 |
| 请求体为空 | 400 |
| Header has Accept != "application/json" | 406 |
| 请求体大于 64KB | 400 |
| 请求体包含格式错误的 JSON | 400 |
| 请求体不是 JSON | 400 |
| 请求体包含 UTF-16 字符的 JSON |
获取队列元数据
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 200 |
| 队列不存在元数据 | 200 |
| 请求不存在的队列的元数据 | 404 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
获取队列统计信息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 200 |
| 请求不存在的队列的统计信息 | 404 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
删除队列
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 204 |
| 删除不存在的队列 | 204 [1] |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
获取消息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功(查询匹配 1 个或多个消息) | 200 |
| 成功(查询没有匹配项) | 204 |
| 请求不存在的队列的消息 | 404 |
| 请求消息时包含无效参数(除了 marker、limit、echo 之外) | 200 |
| 请求消息时 limit > 100 | 400 |
| 请求消息时 limit <= 0 | 400 |
| 请求消息时 marker 不存在 | 204 |
| 请求消息时 echo 的值为非布尔值 | 400 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
获取特定消息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功(查询匹配了消息) | 200 |
| 请求不存在的队列的消息 | 404 |
| 请求不存在的消息 | 404 |
| 请求已过期的消息 | 404 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
通过 ID 获取一组消息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 200 |
| 部分成功 | |
| 请求不存在的消息 | 404 |
| 请求已过期的消息 | 404 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
发布消息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 201 |
| 在单个请求中发布多个消息,全部失败 | 503 |
| 在单个请求中发布多个消息,部分成功 | 201 (带有 "partial": true) [2] |
| 发布到不存在的队列的消息 | 404 |
| 在单个请求中发布 > 100 条消息 | 400 |
| 请求体 > 4KB | 400 |
| 请求体包含无效的 JSON | 400 |
| 请求体不是 JSON | 400 |
| 消息不是 JSON | 400 |
| TTL < 60 | 400 |
| TTL > 1209600 | 400 |
| TTL 的值不是整数 | 400 |
| TTL 的值为负数 | 400 |
| 请求体中没有 TTL | 400 |
| 请求体中没有 "body" | 400 |
| 没有请求体 | 400 |
| 消息封装在多个数组中 | 400 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
删除消息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 204 |
| 从不存在的队列删除消息 | 204 |
| 删除不存在的消息 | 204 |
| 删除具有过期的 claim_id | 403 |
| 删除具有不存在的 claim_id | 403 |
| 在没有提供 claim_id 的情况下删除已声明的消息 | 403 |
| Header has Accept != "application/json" | 406 |
| Header has missing fields | 400 |
| Header has invalid auth token | 401 |
| URL 包含无效参数 | 200 |
Claim 消息
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 200 |
| 成功(空队列,没有要声明的消息) | 204 |
| 从不存在的队列声明消息 | 204 |
| 声明消息时 limit 的值无效(非整数、<=0) | 400 |
| 声明消息时 limit > 100) | 400 |
| 声明消息时没有请求体 | 400 |
| 声明消息时没有 TTL 字段 | 400 |
| 声明消息时 TTL 的值无效(非整数、<=0) | 400 |
| 声明消息时 JSON 无效 | 400 |
| 声明消息时请求体不是 JSON | 400 |
| 声明消息时认证令牌无效 | 401 |
| 声明消息时缺少 header 字段 | 400 |
| Header has Accept != "application/json" | 406 |
查询 Claim
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 200 |
| 查询已过期的声明 | 404 |
| 查询不存在的队列的声明 | 404 |
| 查询声明时认证令牌无效 | 401 |
| 查询声明时缺少 header 字段 | 400 |
| 查询声明时 URL 参数无效 | 200 |
| 查询不存在的 claim_id | 404 |
| Header has Accept != "application/json" | 406 |
更新 Claim
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 204 |
| 更新已过期的声明 | 404 |
| 更新不存在的队列上的声明 | 404 |
| 更新不存在的声明 | 404 |
| 更新声明时 URL 参数无效 | 200 |
| 更新声明时 content-type != application/json-patch | 406 |
| 更新声明时没有请求体 | 400 |
| 更新声明时请求体中的 JSON 无效 | 400 |
| 更新声明时请求体不是 JSON | 400 |
| 更新声明时认证令牌无效 | 401 |
| 更新声明时缺少 header 字段 | 400 |
释放声明
| 场景 | HTTP 响应代码 |
|---|---|
| 成功 | 204 |
| 释放已过期的声明 | 204 |
| 释放不存在的队列的声明 | 404 |
| 释放不存在的声明 | 204 |
| 释放声明时 URL 参数无效 | 200 |
| 释放声明时认证令牌无效 | 401 |
| 释放声明时缺少 header 字段 | 400 |
| Header has Accept != "application/json" | 406 |
- ↑ DELETE 操作是幂等的。
- ↑ postmessage api wiki