Partager via


Révisions clé-valeur

Une révision clé-valeur définit la représentation historique d’une ressource clé-valeur. Les révisions expirent au bout de 7 jours pour les magasins de niveau Gratuit ou 30 jours pour les magasins de niveau Standard. Les révisions prennent en charge l’opération List.

Pour toutes les opérations, key est un paramètre facultatif. En cas d’omission, il implique n’importe quelle clé.

Pour toutes les opérations, label est un paramètre facultatif. En cas d’omission, il implique n’importe quelle étiquette.

Prérequis

  • Toutes les requêtes HTTP doivent être authentifiées. Consultez la section Authentification.
  • Toutes les requêtes HTTP doivent fournir des api-version explicites. Consultez la section Contrôle de version.

Lister les révisions

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

Réponses :

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

Le résultat est paginé si le nombre d’éléments retournés dépasse le nombre limite de réponses. Suivez l’en-tête de réponse Link facultatif et utilisez rel="next" pour la navigation. Le contenu fournit également un lien suivant sous la forme de la propriété @nextLink.

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

Réponse :

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

Répertorier le sous-ensemble des révisions

Utilisez l’en-tête de requête Range. La réponse contient un en-tête Content-Range. Si le serveur ne peut pas satisfaire la plage demandée, il répond HTTP 416 (RangeNotSatisfiable).

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

Réponse

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

Filtrage

Une combinaison de filtre key et label est prise en charge. Utilisez les paramètres de chaîne de requête key et label facultatifs.

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

Une combinaison de filtres label et tags de keyfiltrage est prise en charge. Utilisez les paramètres facultatifs keylabel et tags de chaîne de requête. Plusieurs filtres d’étiquettes peuvent être fournis en tant que paramètres de chaîne de requête au tagName=tagValue format. Les filtres d’étiquettes doivent correspondre exactement.

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

Filtres pris en charge

Filtre de clé Résultat
key est omis ou key=* Correspond à toute clé
key=abc Correspond à une clé nommée abc
key=abc* Correspond aux noms de clé qui commencent par abc
key=*abc Correspond aux noms de clé qui se terminent par abc
key=*abc* Correspond aux noms de clé qui contiennent abc
key=abc,xyz Correspond aux noms de clé abc ou xyz (limités à 5 valeurs séparées par des virgules (CSV))
Filtre d’étiquette Résultat
label est omis ou label= Correspond aux valeurs de clé sans étiquette
label=* Correspond à n’importe quelle étiquette
label=prod Correspond à l’étiquette prod
label=prod* Correspond aux étiquettes qui commencent par prod
label=*prod Correspond aux étiquettes qui se terminent par prod
label=*prod* Correspond aux étiquettes qui contiennent prod
label=prod,test Correspond aux étiquettes prod ou test (limité à 5 valeurs séparées par des virgules (CSV))
Filtre d’étiquettes Résultat
tags est omis ou tags= Correspond à n’importe quelle balise
tags=group=app1 Correspond aux valeurs de clé qui ont une balise nommée group avec la valeur app1
tags=group=app1&tags=env=prod Correspond aux valeurs clés qui ont une balise nommée group avec une valeur app1 et une balise nommée env avec une valeur prod(limitée à 5 filtres d’étiquettes)
tags=tag1=%00 Correspond aux valeurs de clé qui ont une balise nommée tag1 avec la valeur null
tags=tag1= Correspond aux valeurs de clé qui ont une balise nommée tag1 avec une valeur vide

Caractères réservés

Voici les caractères réservés :

*, , \,

Si un caractère réservé fait partie de la valeur, il doit être placé dans une séquence d’échappement à l’aide de \{Reserved Character}. Les caractères non réservés peuvent également être placés dans une séquence d’échappement.

Validation de filtre

Si une erreur de validation de filtre se produit, la réponse est HTTP 400 avec les détails de l’erreur :

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
}

Exemples

  • Tout :

    GET /revisions
    
  • Éléments dont le nom de clé commence par abc :

    GET /revisions?key=abc*&api-version={api-version}
    
  • Éléments dont le nom de clé est abc ou xyz et les étiquettes contiennent prod :

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

Champs spécifiques à la requête

Utilisez le paramètre de chaîne de requête facultatif $select et fournissez une liste séparée par des virgules des champs demandés. Si le paramètre $select est omis, la réponse contient l’ensemble par défaut.

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

Accès basé sur le temps

Obtenez une représentation du résultat tel qu’il était à un moment passé. Pour plus d’informations, consultez Framework HTTP pour l’accès basé sur l’heure aux états des ressources – Mémento, section 2.1.1.

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

Réponse :

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