A key-value revision defines the historical representation of a key-value resource. 免费层和开发人员层存储的修订将在 7 天后过期,标准层和高级层存储的修订期为 30 天。 修订版支持 List 操作。
对于所有操作,key 为可选参数。 如果省略,则暗指任何键。
对于所有操作,label 为可选参数。 如果省略,则暗指任何标签。
Prerequisites
- 所有 HTTP 请求都必须经过身份验证。 See the authentication section.
 - 所有 HTTP 请求都必须提供显式的 
api-version。 See the versioning section. 
List revisions
GET /revisions?label=*&api-version={api-version} HTTP/1.1
Responses:
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}"
}
Pagination
如果返回的项数超过响应限制,则会对结果进行分页。 按照可选 Link 响应标头进行操作并使用 rel="next" 进行导航。 或者,内容以 @nextLink 属性的形式提供下一个链接。
GET /revisions?api-version={api-version} HTTP/1.1
Response:
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
Response
HTTP/1.1 206 Partial Content
Content-Type: application/vnd.microsoft.appconfig.revs+json; charset=utf-8
Content-Range: items 0-2/80
Filtering
支持组合使用 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}
Supported filters
| Key filter | Effect | 
|---|---|
省略 key 或 key=* | 
Matches any key | 
key=abc | 
Matches a key named abc | 
key=abc* | 
Matches keys names that start with abc | 
key=*abc | 
Matches keys names that end with abc | 
key=*abc* | 
Matches keys names that contain abc | 
key=abc,xyz | 
Matches keys names abc or xyz (limited to 5 CSV) | 
| Label filter | Effect | 
|---|---|
省略 label 或 label= | 
匹配没有标签的键值 | 
label=* | 
Matches any label | 
label=prod | 
Matches the label prod | 
label=prod* | 
Matches labels that start with prod | 
label=*prod | 
Matches labels that end with prod | 
label=*prod* | 
Matches labels that contain prod | 
label=prod,test | 
Matches labels prod or test (limited to 5 CSV) | 
| Tags filter | Effect | 
|---|---|
省略 tags 或 tags= | 
Matches any tag | 
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 characters
保留字符为:
              *,\,,
如果保留字符是值的一部分,则必须使用 \{Reserved Character} 对其进行转义。 非保留字符也可以进行转义。
Filter validation
如果出现筛选器验证错误,则响应为“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
}
Examples
All:
GET /revisionsItems where the key name starts with abc:
GET /revisions?key=abc*&api-version={api-version}Items where the key name is either abc or xyz, and labels contain 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
Time-based access
获得结果在过去的表现形式。 有关详细信息,请参阅用于对资源状态进行基于时间的访问的 HTTP 框架 - Memento 的 2.1.1 部分。
GET /revisions?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT
Response:
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": [
        ....
    ]
}