Редакции "ключ-значение"
Редакция "ключ-значение" определяет историческое представление ресурса "ключ-значение". Срок действия редакций истекает через 7 дней для хранилищ бесплатного уровня или 30 дней для хранилищ стандартного уровня. Редакции поддерживают операцию List
.
Для всех операций key
— необязательный параметр. Если он не указан, подразумевается любой ключ.
Для всех операций label
— необязательный параметр. Если он не указан, подразумевается любая метка.
Необходимые компоненты
- Все HTTP-запросы должны пройти проверку подлинности. См. раздел об аутентификации.
- Все HTTP-запросы должны предоставлять явный запрос
api-version
. См. раздел о версионировании.
Вывод списка редакций
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
Response
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 Framework for Time-Based Access to Resource States -- Memento (Платформа HTTP для доступа на основе времени к состояниям ресурсов — памятка), раздел 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": [
....
]
}