Add prefix parameter to APIs that use listings
This commit is contained in:
parent
cc8b13f808
commit
d3a9075cd3
2 changed files with 14 additions and 4 deletions
|
@ -342,12 +342,13 @@ HTTP/1.1 204 NO CONTENT
|
||||||
|
|
||||||
Lists all partition keys in the bucket for which some triplets exist, and gives
|
Lists all partition keys in the bucket for which some triplets exist, and gives
|
||||||
for each the number of triplets (or an approximation thereof, this value is
|
for each the number of triplets (or an approximation thereof, this value is
|
||||||
asynchronously updated, and thus eventually consistent).
|
asynchronously updated, and thus eventually consistent).
|
||||||
|
|
||||||
Query parameters:
|
Query parameters:
|
||||||
|
|
||||||
| name | default value | meaning |
|
| name | default value | meaning |
|
||||||
| - | - | - |
|
| - | - | - |
|
||||||
|
| `prefix` | `null` | Restrict listing to partition keys that start with this prefix |
|
||||||
| `start` | `null` | First partition key to list, in lexicographical order |
|
| `start` | `null` | First partition key to list, in lexicographical order |
|
||||||
| `end` | `null` | Last partition key to list (excluded) |
|
| `end` | `null` | Last partition key to list (excluded) |
|
||||||
| `limit` | `null` | Maximum number of partition keys to list |
|
| `limit` | `null` | Maximum number of partition keys to list |
|
||||||
|
@ -383,6 +384,7 @@ Example response:
|
||||||
HTTP/1.1 200 OK
|
HTTP/1.1 200 OK
|
||||||
|
|
||||||
{
|
{
|
||||||
|
prefix: null,
|
||||||
start: null,
|
start: null,
|
||||||
end: null,
|
end: null,
|
||||||
limit: null,
|
limit: null,
|
||||||
|
@ -452,6 +454,7 @@ JSON struct with the following fields:
|
||||||
| name | default value | meaning |
|
| name | default value | meaning |
|
||||||
| - | - | - |
|
| - | - | - |
|
||||||
| `partitionKey` | **mandatory** | The partition key in which to search |
|
| `partitionKey` | **mandatory** | The partition key in which to search |
|
||||||
|
| `prefix` | `null` | Restrict items to list to those whose sort keys start with this prefix |
|
||||||
| `start` | `null` | The sort key of the first item to read |
|
| `start` | `null` | The sort key of the first item to read |
|
||||||
| `end` | `null` | The sort key of the last item to read (excluded) |
|
| `end` | `null` | The sort key of the last item to read (excluded) |
|
||||||
| `limit` | `null` | The maximum number of items to return |
|
| `limit` | `null` | The maximum number of items to return |
|
||||||
|
@ -461,7 +464,7 @@ JSON struct with the following fields:
|
||||||
|
|
||||||
|
|
||||||
For each of the searches, triplets are listed and returned separately. The
|
For each of the searches, triplets are listed and returned separately. The
|
||||||
semantics of `start`, `end` and `limit` is the same as for ReadIndex. The
|
semantics of `prefix`, `start`, `end` and `limit` are the same as for ReadIndex. The
|
||||||
additionnal parameter `singleItem` allows to get a single item, whose sort key
|
additionnal parameter `singleItem` allows to get a single item, whose sort key
|
||||||
is the one given in `start`. Parameters `conflictsOnly` and `tombstones`
|
is the one given in `start`. Parameters `conflictsOnly` and `tombstones`
|
||||||
control additional filters on the items that are returned.
|
control additional filters on the items that are returned.
|
||||||
|
@ -519,6 +522,7 @@ HTTP/1.1 200 OK
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
partitionKey: "mailboxes",
|
partitionKey: "mailboxes",
|
||||||
|
prefix: null,
|
||||||
start: null,
|
start: null,
|
||||||
end: null,
|
end: null,
|
||||||
limit: null,
|
limit: null,
|
||||||
|
@ -535,6 +539,7 @@ HTTP/1.1 200 OK
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
partitionKey: "mailbox::INBOX",
|
partitionKey: "mailbox::INBOX",
|
||||||
|
prefix: null,
|
||||||
start: "001892831",
|
start: "001892831",
|
||||||
end: null,
|
end: null,
|
||||||
limit: 3,
|
limit: 3,
|
||||||
|
@ -551,6 +556,7 @@ HTTP/1.1 200 OK
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
partitionKey: "keys",
|
partitionKey: "keys",
|
||||||
|
prefix: null,
|
||||||
start: "0",
|
start: "0",
|
||||||
end: null,
|
end: null,
|
||||||
conflictsOnly: false,
|
conflictsOnly: false,
|
||||||
|
@ -572,7 +578,7 @@ HTTP/1.1 200 OK
|
||||||
|
|
||||||
Batch deletion of triplets. The request format is the same for `POST
|
Batch deletion of triplets. The request format is the same for `POST
|
||||||
/<bucket>?search` to indicate items or range of items, except that here they
|
/<bucket>?search` to indicate items or range of items, except that here they
|
||||||
are deleted instead of returned, but only the fields `partitionKey`, `start`,
|
are deleted instead of returned, but only the fields `partitionKey`, `prefix`, `start`,
|
||||||
`end`, and `singleItem` are supported. Causality information is not given by
|
`end`, and `singleItem` are supported. Causality information is not given by
|
||||||
the user: this request will internally list all triplets and write deletion
|
the user: this request will internally list all triplets and write deletion
|
||||||
markers that supersede all of the versions that have been read.
|
markers that supersede all of the versions that have been read.
|
||||||
|
@ -605,6 +611,7 @@ HTTP/1.1 200 OK
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
partitionKey: "mailbox:OldMailbox",
|
partitionKey: "mailbox:OldMailbox",
|
||||||
|
prefix: null,
|
||||||
start: null,
|
start: null,
|
||||||
end: null,
|
end: null,
|
||||||
singleItem: false,
|
singleItem: false,
|
||||||
|
@ -612,6 +619,7 @@ HTTP/1.1 200 OK
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
partitionKey: "mailbox:INBOX",
|
partitionKey: "mailbox:INBOX",
|
||||||
|
prefix: null,
|
||||||
start: "0018928321",
|
start: "0018928321",
|
||||||
end: null,
|
end: null,
|
||||||
singleItem: true,
|
singleItem: true,
|
||||||
|
|
|
@ -34,6 +34,7 @@ pub enum Endpoint {
|
||||||
ReadBatch {
|
ReadBatch {
|
||||||
},
|
},
|
||||||
ReadIndex {
|
ReadIndex {
|
||||||
|
prefix: Option<String>,
|
||||||
start: Option<String>,
|
start: Option<String>,
|
||||||
end: Option<String>,
|
end: Option<String>,
|
||||||
limit: Option<u64>,
|
limit: Option<u64>,
|
||||||
|
@ -97,7 +98,7 @@ impl Endpoint {
|
||||||
EMPTY => ReadItem (query::sort_key),
|
EMPTY => ReadItem (query::sort_key),
|
||||||
],
|
],
|
||||||
no_key: [
|
no_key: [
|
||||||
EMPTY => ReadIndex (query_opt::start, query_opt::end, opt_parse::limit),
|
EMPTY => ReadIndex (query_opt::prefix, query_opt::start, query_opt::end, opt_parse::limit),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -214,6 +215,7 @@ impl Endpoint {
|
||||||
|
|
||||||
// parameter name => struct field
|
// parameter name => struct field
|
||||||
generateQueryParameters! {
|
generateQueryParameters! {
|
||||||
|
"prefix" => prefix,
|
||||||
"start" => start,
|
"start" => start,
|
||||||
"causality_token" => causality_token,
|
"causality_token" => causality_token,
|
||||||
"end" => end,
|
"end" => end,
|
||||||
|
|
Loading…
Reference in a new issue