Compartir vía


Revisiones de clave y valor

Una revisión de clave y valor define la representación histórica de un recurso de clave y valor. Las revisiones expiran después de 7 días en el caso de los almacenes de nivel Gratis, o 30 días en el de los almacenes de nivel Estándar. Las revisiones admiten la operación List.

En todas las operaciones, key es un parámetro opcional. Si se omite, implica cualquier clave.

En todas las operaciones, label es un parámetro opcional. Si se omite, implica cualquier etiqueta.

Requisitos previos

  • Se deben autenticar todas las solicitudes HTTP. Consulte la sección Autenticación.
  • Todas las solicitudes HTTP deben proporcionar parámetros api-version explícitos. Consulte la sección Control de versiones.

Enumeración de revisiones

GET /revisions?label=*&api-version={api-version} HTTP/1.1

Respuestas:

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}"
}

Paginación

El resultado se pagina si el número de elementos devueltos supera el límite de respuesta. Siga el encabezado de respuesta Link opcional y use rel="next" para la navegación. Como alternativa, el contenido proporciona un vínculo siguiente en forma de la propiedad @nextLink.

GET /revisions?api-version={api-version} HTTP/1.1

Respuesta:

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}"
}

Lista de subconjuntos de revisiones

Use el encabezado de solicitud Range. La respuesta contiene un encabezado Content-Range. Si el servidor no puede satisfacer el intervalo solicitado, responde con HTTP 416 (RangeNotSatisfiable).

GET /revisions?api-version={api-version} HTTP/1.1
Range: items=0-2

Respuesta

HTTP/1.1 206 Partial Content
Content-Type: application/vnd.microsoft.appconfig.revs+json; charset=utf-8
Content-Range: items 0-2/80

Filtrado

Se admite una combinación de filtrado de key y label. Use los parámetros de cadena de consulta opcionales key y label.

GET /revisions?key={key}&label={label}&api-version={api-version}

Se admite una combinación de keyy label tags el filtrado. Use los parámetros opcionales keylabel de cadena de consulta y tags . Se pueden proporcionar varios filtros de etiqueta como parámetros de cadena de consulta en el tagName=tagValue formato . Los filtros de etiqueta deben ser una coincidencia exacta.

GET /revisions?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}

Filtros admitidos

Filtro de clave Efecto
se omite key o key=* Coincide con cualquier clave
key=abc Coincide con una clave de nombre abc
key=abc* Coincide con los nombres de claves que empiezan por abc
key=*abc Coincide con los nombres de claves que terminan por abc
key=*abc* Coincide con los nombres de claves que contienen abc
key=abc,xyz Coincide con los nombres de claves abc o xyz (limitado a 5 archivos CSV)
Filtro de etiqueta Efecto
se omite label o label= Coincide con los valores clave-valor sin etiqueta
label=* Coincide con cualquier etiqueta
label=prod Coincide con la etiqueta prod
label=prod* Coincide con las etiquetas que empiezan por prod
label=*prod Coincide con las etiquetas que terminan por prod
label=*prod* Coincide con las etiquetas que contienen prod
label=prod,test Coincide con las etiquetas prod o test (limitado a 5 archivos CSV)
Filtro de etiquetas Efecto
se omite tags o tags= Coincide con cualquier etiqueta
tags=group=app1 Coincide con los valores clave que tienen una etiqueta denominada group con el valor app1
tags=group=app1&tags=env=prod Coincide con los valores clave que tienen una etiqueta denominada group con valor app1 y una etiqueta denominada env con valor prod(limitado a 5 filtros de etiqueta).
tags=tag1=%00 Coincide con los valores clave que tienen una etiqueta denominada tag1 con el valor null
tags=tag1= Coincide con los valores de clave que tienen una etiqueta denominada tag1 con un valor vacío.

Caracteres reservados

Los caracteres reservados son:

*, , \, ,

Si un carácter reservado forma parte del valor, se debe escapar mediante \{Reserved Character}. Los caracteres no reservados también se pueden escapar.

Validación del filtro

Si se produce un error de validación del filtro, la respuesta es HTTP 400 con detalles del error:

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
}

Ejemplos

  • Todo:

    GET /revisions
    
  • Elementos donde el nombre de clave comienza por abc:

    GET /revisions?key=abc*&api-version={api-version}
    
  • Elementos donde el nombre de clave es abc o xyz, y las etiquetas contienen prod:

    GET /revisions?key=abc,xyz&label=*prod*&api-version={api-version}
    

Campos específicos de solicitud

Use el parámetro de cadena de consulta opcional $select y proporcione una lista separada por comas de campos solicitados. Si se omite el parámetro $select, la respuesta contiene el conjunto predeterminado.

GET /revisions?$select=value,label,last_modified&api-version={api-version} HTTP/1.1

Acceso basado en el tiempo

Obtenga una representación del resultado tal como era en un momento anterior. Para obtener más información, consulte Marco HTTP para el acceso basado en tiempo a los estados de los recursos: Memento, sección 2.1.1.

GET /revisions?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT

Respuesta:

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": [
        ....
    ]
}