Редакции "ключ-значение"

Редакция "ключ-значение" определяет историческое представление ресурса "ключ-значение". Срок действия редакций истекает через 7 дней для хранилищ бесплатного уровня или 30 дней для хранилищ стандартного уровня. Редакции поддерживают операцию List.

Для всех операций key — необязательный параметр. Если он не указан, подразумевается любой ключ.

Для всех операций label — необязательный параметр. Если он не указан, подразумевается любая метка.

Эта статья относится к API версии 1.0.

Предварительные требования

  • Все 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

Ответ

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 не указан или имеет значение 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)

Зарезервированные знаки

Зарезервированными знаками являются:

*, \, ,

Если зарезервированный знак является частью значения, он должен быть экранирован с помощью \{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": [
        ....
    ]
}