鎖定
此 API 提供索引鍵/值資源的鎖定和解除鎖定語意。 它支援下列作業:
- 放置鎖定
- 拿掉鎖定
如果存在, label
必須是明確的標籤(而非通配符)。 針對所有作業,它是選擇性參數。 如果省略,則表示沒有標籤。
必要條件
鎖定索引鍵/值
- 必要:
{key}
、{api-version}
- 自選:
label
PUT /locks/{key}?label={label}&api-version={api-version} HTTP/1.1
回應:
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": []
}
如果機碼值不存在,則會傳回下列回應:
HTTP/1.1 404 Not Found
解除鎖定索引鍵/值
- 必要:
{key}
、{api-version}
- 自選:
label
DELETE /locks/{key}?label={label}?api-version={api-version} HTTP/1.1
回應:
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": []
}
如果機碼值不存在,則會傳回下列回應:
HTTP/1.1 404 Not Found
條件式鎖定和解除鎖定
若要防止競爭狀況,請使用 If-Match
或 If-None-Match
要求標頭。 自 etag
變數是索引鍵表示法的一部分。 如果 If-Match
省略 或 If-None-Match
,則作業是無條件的。
只有當目前的索引鍵/值表示符合指定的 etag
時,下列要求才會套用作業:
PUT|DELETE /locks/{key}?label={label}&api-version={api-version} HTTP/1.1
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
只有在目前的索引鍵/值表示存在,但不符合指定的 etag
時,下列要求才會套用作業:
PUT|DELETE /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"