键/值修订版
“键/值修订版”定义了键/值资源的历史表示形式。 对于免费层存储,修订版会在 7 天后过期;对于标准层存储,则在 30 天后过期。 修订版支持 List
操作。
对于所有操作,key
为可选参数。 如果省略,则暗指任何键。
对于所有操作,label
为可选参数。 如果省略,则暗指任何标签。
先决条件
列出修订版
GET /revisions?label=*&api-version={api-version} HTTP/1.1
响应:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json; charset=utf-8"
Accept-Ranges: items
{
"items": [
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"key": "{key}",
"label": "{label}",
"content_type": null,
"value": "example value",
"last_modified": "2017-12-05T02:41:26.4874615+00:00",
"tags": []
},
...
],
"@nextLink": "{relative uri}"
}
分页
如果返回的项数超过响应限制,则会对结果进行分页。 按照可选 Link
响应标头进行操作并使用 rel="next"
进行导航。 或者,内容以 @nextLink
属性的形式提供下一个链接。
GET /revisions?api-version={api-version} HTTP/1.1
响应:
HTTP/1.1 OK
Content-Type: application/vnd.microsoft.appconfig.kvs+json; charset=utf-8
Accept-Ranges: items
Link: <{relative uri}>; rel="next"
{
"items": [
...
],
"@nextLink": "{relative uri}"
}
列出修订版的子集
使用 Range
请求标头。 响应包含一个 Content-Range
标头。 如果服务器不能满足所请求的范围,则会以“HTTP 416
(RangeNotSatisfiable
)”进行响应。
GET /revisions?api-version={api-version} HTTP/1.1
Range: items=0-2
响应
HTTP/1.1 206 Partial Content
Content-Type: application/vnd.microsoft.appconfig.revs+json; charset=utf-8
Content-Range: items 0-2/80
筛选
支持组合使用 key
和 label
筛选。
使用可选的 key
和 label
查询字符串参数。
GET /revisions?key={key}&label={label}&api-version={api-version}
支持将 key
、label
和 tags
组合起来用于筛选。
使用可选的 key
、label
和 tags
查询字符串参数。
可以以 tagName=tagValue
格式提供多个标记筛选器作为查询字符串参数。 标记筛选器必须完全匹配。
GET /revisions?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
支持的筛选器
键筛选器 | 效果 |
---|---|
省略 key 或 key=* |
匹配任何键 |
key=abc |
匹配名为“abc”的键 |
key=abc* |
匹配以“abc”开头的键名称 |
key=*abc |
匹配以“abc”结尾的键名称 |
key=*abc* |
匹配包含“abc”的键名称 |
key=abc,xyz |
匹配键名称“abc”或“xyz”(限制为 5 个 CSV) |
标签筛选器 | 效果 |
---|---|
省略 label 或 label= |
匹配没有标签的键值 |
label=* |
匹配任何标签 |
label=prod |
匹配标签“prod” |
label=prod* |
匹配以“prod”开头的标签 |
label=*prod |
匹配以“prod”结尾的标签 |
label=*prod* |
匹配包含“prod”的标签 |
label=prod,test |
匹配标签“prod”或“test”(限制为 5 个 CSV) |
标记筛选器 | 效果 |
---|---|
省略 tags 或 tags= |
匹配任意标记 |
tags=group=app1 |
匹配包含名为 group 且值为 app1 的标记的键值 |
tags=group=app1&tags=env=prod |
匹配包含名为 group 且值为 app1 的标记,以及名为 env 且值为 prod 的标记的键值(限制为 5 个标记筛选器) |
tags=tag1=%00 |
匹配包含名为 tag1 且值为 null 的标记的键值 |
tags=tag1= |
匹配包含名为 tag1 且值为空的标记的键值 |
保留字符
保留字符为:
*
, \
, ,
如果保留字符是值的一部分,则必须使用 \{Reserved Character}
对其进行转义。 非保留字符也可以进行转义。
筛选器验证
如果出现筛选器验证错误,则响应为“HTTP 400
”,其中包含以下错误详细信息:
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://azconfig.io/errors/invalid-argument",
"title": "Invalid request parameter '{filter}'",
"name": "{filter}",
"detail": "{filter}(2): Invalid character",
"status": 400
}
示例
所有:
GET /revisions
其中的键名称以“abc”开头的项:
GET /revisions?key=abc*&api-version={api-version}
其中的键名称为“abc”或“xyz”且标签包含“prod”的项:
GET /revisions?key=abc,xyz&label=*prod*&api-version={api-version}
请求特定字段
使用可选的 $select
查询字符串参数,并提供逗号分隔的所请求字段列表。 如果省略 $select
参数,则响应会包含默认集。
GET /revisions?$select=value,label,last_modified&api-version={api-version} HTTP/1.1
基于时间的访问
获得结果在过去的表现形式。 有关详细信息,请参阅用于对资源状态进行基于时间的访问的 HTTP 框架 - Memento 的 2.1.1 部分。
GET /revisions?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT
响应:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.revs+json"
Memento-Datetime: Sat, 12 May 2018 02:10:00 GMT
Link: <{relative uri}>; rel="original"
{
"items": [
....
]
}