Compartilhar via


Locks

Essa API fornece semântica de bloqueio e desbloqueio para o recurso de chave-valor. Ela é compatível com as seguintes operações:

  • Posicionar bloqueio
  • Remover bloqueio

Se presente, label deve ser um valor de rótulo explícito (não um caractere curinga). Para todas as operações, é um parâmetro opcional. Caso seja omitido, isso significará que não há 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.

Bloquear chave-valor

  • Obrigatório: {key}, {api-version}
  • Opcional: label
PUT /locks/{key}?label={label}&api-version={api-version} HTTP/1.1

Respostas:

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

Se a chave-valor não existir, a seguinte resposta será retornada:

HTTP/1.1 404 Not Found

Desbloquear chave-valor

  • Obrigatório: {key}, {api-version}
  • Opcional: label
DELETE /locks/{key}?label={label}?api-version={api-version} HTTP/1.1

Respostas:

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

Se a chave-valor não existir, a seguinte resposta será retornada:

HTTP/1.1 404 Not Found

Bloqueio e desbloqueio condicional

Para evitar condições de corrida, use os cabeçalhos de solicitação If-Match ou If-None-Match. O argumento etag faz parte da representação de chave. Se If-Match ou If-None-Match forem omitidos, a operação é incondicional.

A solicitação a seguir se aplica à operação somente se a representação chave-valor atual corresponder ao etag especificado:

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

A solicitação a seguir se aplica à operação somente se a representação chave-valor atual existir, mas não corresponder ao etag especificado:

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