Udostępnij za pośrednictwem


Blokady

Ten interfejs API (wersja 1.0) zapewnia semantykę blokowania i odblokowywania dla zasobu klucz-wartość. Obsługuje ona następujące operacje:

  • Umieść blokadę
  • Usuń blokadę

Jeśli istnieje, label musi być jawną wartością etykiety (a nie symbolem wieloznacznymi). Dla wszystkich operacji jest to opcjonalny parametr. Jeśli pominięto, oznacza to, że nie ma etykiety.

Wymagania wstępne

  • Wszystkie żądania HTTP muszą być uwierzytelnione. Zobacz sekcję uwierzytelniania .
  • Wszystkie żądania HTTP muszą podać jawne api-version. Zobacz sekcję przechowywanie wersji .

Zablokuj klucz-wartość

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

Odpowiedzi:

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

Jeśli klucz-wartość nie istnieje, zostanie zwrócona następująca odpowiedź:

HTTP/1.1 404 Not Found

Odblokuj klucz-wartość

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

Odpowiedzi:

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

Jeśli klucz-wartość nie istnieje, zostanie zwrócona następująca odpowiedź:

HTTP/1.1 404 Not Found

Blokada warunkowa i odblokowywanie

Aby zapobiec warunkom wyścigu, użyj If-Match nagłówków lub If-None-Match zażądaj. Argument etag jest częścią reprezentacji klucza. Jeśli If-Match operacja zostanie pominięta lub If-None-Match zostanie pominięta, operacja jest bezwarunkowa.

Następujące żądanie stosuje operację tylko wtedy, gdy bieżąca reprezentacja klucz-wartość jest zgodna z określoną wartością etag:

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

Następujące żądanie stosuje operację tylko wtedy, gdy istnieje bieżąca reprezentacja klucz-wartość, ale nie jest zgodna z określoną etagwartością :

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