Partage via


Verrous

Cette API (version 1.0) offre une sémantique de verrouillage et de déverrouillage pour la ressource de clé-valeur. Elle prend en charge les opérations suivantes :

  • Placer un verrou
  • Retirer un verrou

Si le paramètre label est présent, il doit s’agir d’une valeur d’étiquette explicite (et non d’un caractère générique). Pour toutes les opérations, il est facultatif. Son omission implique l’absence d’é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.

Verrouillage de la clé-valeur

  • Obligatoire : {key}, {api-version}
  • Facultatif : label
PUT /locks/{key}?label={label}&api-version={api-version} HTTP/1.1

Réponses :

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8"
{
  "etag": "4f6dd610dd5e4deebc7fbaef685fb903",
  "key": "{key}",
  "label": "{label}",
  "content_type": null,
  "value": "example value",
  "created": "2017-12-05T02:41:26.4874615+00:00",
  "locked": true,
  "tags": []
}

Si la clé-valeur n’existe pas, la réponse suivante est retournée :

HTTP/1.1 404 Not Found

Déverrouillage de la clé-valeur

  • Obligatoire : {key}, {api-version}
  • Facultatif : label
DELETE /locks/{key}?label={label}?api-version={api-version} HTTP/1.1

Réponses :

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8"
{
  "etag": "4f6dd610dd5e4deebc7fbaef685fb903",
  "key": "{key}",
  "label": "{label}",
  "content_type": null,
  "value": "example value",
  "created": "2017-12-05T02:41:26.4874615+00:00",
  "locked": true,
  "tags": []
}

Si la clé-valeur n’existe pas, la réponse suivante est retournée :

HTTP/1.1 404 Not Found

Verrouillage et déverrouillage conditionnel

Pour éviter les conditions de concurrence, utilisez les en-têtes de demande If-Match ou If-None-Match. L’argument etag fait partie de la représentation clé. Si If-Match et If-None-Match sont omis, l’opération est inconditionnelle.

La requête suivante applique l’opération uniquement si la représentation de la clé-valeur actuelle correspond à l’etag spécifié :

PUT|DELETE /locks/{key}?label={label}&api-version={api-version} HTTP/1.1
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

La requête suivante applique l’opération uniquement si la représentation de la clé-valeur actuelle existe, mais ne correspond pas à l’etag spécifié :

PUT|DELETE /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"