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 key
filtrage est prise en charge.
Utilisez les paramètres facultatifs key
label
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": [
....
]
}