此 API 为键-值资源提供锁定和取消锁定语义。 它支持以下操作:

  • 放置锁
  • 删除锁

如果存在,label 必须是显式标签值(不是通配符)。 对于所有操作,它是一个可选参数。 如果省略,则暗指没有标签。

必备条件

  • 所有 HTTP 请求都必须经过身份验证。 请参阅身份验证部分。
  • 所有 HTTP 请求都必须提供显式的 api-version。 请参阅版本控制部分。

锁定键-值

  • 必需:{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-MatchIf-None-Match 请求标头。 etag 参数是键表示形式的一部分。 如果省略 If-MatchIf-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"