Revisões de chave-valor
Uma revisão de chave-valor define a representação histórica de um recurso de chave-valor. As revisões expiram após 7 dias para lojas de camada Gratuita ou 30 dias para armazenamentos de camada Standard. As revisões dão suporte à operação List
.
Para todas as operações, key
é um parâmetro opcional. Caso seja omitido, isso significará qualquer chave.
Para todas as operações, label
é um parâmetro opcional. Caso seja omitido, ele implicará em outra etiqueta.
Pré-requisitos
- Todas as solicitações HTTP deverão ser autenticadas. Confira a seção autenticação.
- Todas as solicitações HTTP deverão fornecer uma
api-version
explícita. Confira a seção controle de versão.
Listar revisões
GET /revisions?label=*&api-version={api-version} HTTP/1.1
Respostas:
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}"
}
Paginação
Caso o número de itens retornados exceda o limite de resposta, o resultado será paginado. Siga o cabeçalho de resposta opcional do Link
e use rel="next"
para navegação. Como alternativa, o conteúdo fornecerá o próximo link no formulário da propriedade @nextLink
.
GET /revisions?api-version={api-version} HTTP/1.1
Resposta:
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}"
}
Listar subconjunto de revisões
Use o cabeçalho de solicitação Range
. A resposta contém um cabeçalho Content-Range
. Se o servidor não puder atender ao intervalo solicitado, ele responderá com HTTP 416
(RangeNotSatisfiable
).
GET /revisions?api-version={api-version} HTTP/1.1
Range: items=0-2
Resposta
HTTP/1.1 206 Partial Content
Content-Type: application/vnd.microsoft.appconfig.revs+json; charset=utf-8
Content-Range: items 0-2/80
Filtragem
Há suporte para uma combinação de filtragens key
e label
.
Use os parâmetros de cadeia de caracteres de consulta opcionais key
e label
.
GET /revisions?key={key}&label={label}&api-version={api-version}
Há suporte para uma combinação de key
filtragem label
e tags
,
Use os parâmetros opcionais key
, label
e tags
query string.
Vários filtros de tag podem ser fornecidos como parâmetros de string de consulta no tagName=tagValue
formato. Os filtros de tags precisam ser uma correspondência exata.
GET /revisions?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
Filtros com suporte
Filtro de chave | Efeito |
---|---|
key é omitido ou key=* |
Corresponde a qualquer chave |
key=abc |
Corresponde a uma chave denominada abc |
key=abc* |
Corresponde aos nomes de chave que começam com abc |
key=*abc |
Corresponde aos nomes de chaves que terminam com abc |
key=*abc* |
Corresponde aos nomes de chaves que contêm abc |
key=abc,xyz |
Corresponde aos nomes de chave abc ou xyz (limitado a 5 CSVs) |
Filtro de rótulo | Efeito |
---|---|
label é omitido ou label= |
Corresponde a chaves-valor sem rótulo |
label=* |
Corresponde a outra etiqueta |
label=prod |
Corresponde ao rótulo prod |
label=prod* |
Corresponde aos rótulos que começam com prod |
label=*prod |
Corresponde aos rótulos que terminam com prod |
label=*prod* |
Corresponde aos rótulos que contêm prod |
label=prod,test |
Corresponde aos rótulos prod ou test (limitado a 5 CSVs) |
Filtro de tags | Efeito |
---|---|
tags é omitido ou tags= |
Corresponde a qualquer tag |
tags=group=app1 |
Corresponde a chaves-valor que têm uma tag nomeada group com valor app1 |
tags=group=app1&tags=env=prod |
Corresponde a chaves-valor que têm uma tag nomeada group com valor app1 e uma tag nomeada env com value prod (limitado a 5 filtros de tag) |
tags=tag1=%00 |
Corresponde a chaves-valor que têm uma tag nomeada tag1 com valor null |
tags=tag1= |
Corresponde a chaves-valor que têm uma tag nomeada tag1 com valor vazio |
Caracteres reservados
Os caracteres reservados são:
*
, \
, ,
Caso um caractere reservado faça parte do valor, ele deverá ser ignorado usando \{Reserved Character}
. Os caracteres não reservados também podem ser ignorados.
Validação de filtro
Caso ocorra um erro de validação de filtro, a resposta será HTTP 400
com detalhes do erro:
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
}
Exemplos
Todos:
GET /revisions
Itens em que o nome da chave começa com abc:
GET /revisions?key=abc*&api-version={api-version}
Itens em que o nome da chave é abc ou xyz, e os rótulos contêm prod:
GET /revisions?key=abc,xyz&label=*prod*&api-version={api-version}
Campos específicos da solicitação
Use o parâmetro opcional de cadeia de caracteres de consulta $select
e forneça uma lista separada por vírgulas dos campos solicitados. Caso o parâmetro $select
seja omitido, a resposta conterá o conjunto padrão.
GET /revisions?$select=value,label,last_modified&api-version={api-version} HTTP/1.1
Acesso baseado em tempo
Obtenha uma representação do resultado mostrado anteriormente. Para obter mais informações, consulte Estrutura HTTP para acesso baseado em tempo aos estados de recurso -- Memento, seção 2.1.1.
GET /revisions?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT
Resposta:
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": [
....
]
}