키-값
키-값은 고유한 조합으로 식별되는 리소스입니다 key
+ label
. label
은(는) 선택 사항입니다. 레이블 없이 키-값을 명시적으로 참조하려면 "\0"(%00
으로 인코딩된 URL)을 사용합니다. 각 작업에 대한 세부 정보를 참조하세요.
작업
- Get
- 여러 목록
- 설정
- 삭제
필수 조건
구문
{
"etag": [string],
"key": [string],
"label": [string, optional],
"content_type": [string, optional],
"value": [string],
"last_modified": [datetime ISO 8601],
"locked": [boolean],
"tags": [object with string properties, optional]
}
키-값 가져오기
필수: {key}
, {api-version}
선택 사항: label
(생략하면 레이블이 없는 키-값을 의미합니다.)
GET /kv/{key}?label={label}&api-version={api-version}
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8;
Last-Modified: Tue, 05 Dec 2017 02:41:26 GMT
ETag: "4f6dd610dd5e4deebc7fbaef685fb903"
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"key": "{key}",
"label": "{label}",
"content_type": null,
"value": "example value",
"last_modified": "2017-12-05T02:41:26+00:00",
"locked": "false",
"tags": {
"t1": "value1",
"t2": "value2"
}
}
키가 없으면 다음 응답이 반환됩니다.
HTTP/1.1 404 Not Found
가져오기(조건부)
클라이언트 캐싱을 향상시키려면 If-Match
또는 If-None-Match
요청 헤더를 사용합니다. etag
인수는 키 표현의 일부입니다. 자세한 내용은 섹션 14.24 및 14.26을 참조하세요.
다음 요청은 현재 표현이 지정된 etag
표현과 일치하지 않는 경우에만 키-값을 검색합니다.
GET /kv/{key}?api-version={api-version} HTTP/1.1
Accept: application/vnd.microsoft.appconfig.kv+json;
If-None-Match: "{etag}"
응답:
HTTP/1.1 304 NotModified
또는
HTTP/1.1 200 OK
키-값 나열
옵션: key
(지정하지 않은 경우 임의 키 의미)
옵션: label
(지정하지 않은 경우 임의 레이블 의미)
GET /kv?label=*&api-version={api-version} HTTP/1.1
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json; charset=utf-8
선택 사항: tags
(지정하지 않으면 태그를 의미합니다.)
GET /kv?key=Test*&label=*&tags=tag1=value1&tags=tag2=value2&api-version={api-version} HTTP/1.1
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json; charset=utf-8
자세한 옵션은 이 문서의 뒷부분에 있는 "필터링" 섹션을 참조하세요.
키-값 나열(조건부)
클라이언트 캐싱을 향상시키려면 If-Match
또는 If-None-Match
요청 헤더를 사용합니다. 인수 etag
는 목록 키-값 응답 본문 및 헤더의 일부입니다.
If-Match
또는 If-None-Match
가 생략된 경우에는 작업이 무조건 수행됩니다.
다음 응답은 현재 표현이 지정된 etag
표현과 일치하는 경우에만 키-값을 가져옵니다.
GET /kv?key={key}label={label}&api-version={api-version} HTTP/1.1
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
응답:
HTTP/1.1 412 PreconditionFailed
또는
HTTP/1.1 200 OK
다음 응답은 현재 표현이 지정된 etag
표현과 일치하지 않는 경우에만 키 값을 가져옵니다.
GET /kv?key={key}label={label}&api-version={api-version} HTTP/1.1
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
응답:
HTTP/1.1 304 NotModified
또는
HTTP/1.1 200 OK
페이지 매김
반환된 항목 수가 응답 제한을 초과하면 결과가 페이지가 매겨집니다. 선택적 Link
응답 헤더를 따르고 탐색에 사용합니다 rel="next"
.
또는 콘텐츠는 속성 형식의 @nextLink
다음 링크를 제공합니다. 연결된 URI는 api-version
인수를 포함합니다.
GET /kv?api-version={api-version} HTTP/1.1
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvs+json; charset=utf-8
Link: <{relative uri}>; rel="next"
{
"items": [
...
],
"@nextLink": "{relative uri}"
}
필터링
key
및 label
필터링의 조합이 지원됩니다.
선택적 key
및 label
쿼리 문자열 매개 변수를 사용합니다.
GET /kv?key={key}&label={label}&api-version={api-version}
, label
및 tags
필터링의 key
조합이 지원됩니다.
선택적 key
, label
및 tags
쿼리 문자열 매개 변수를 사용합니다.
여러 태그 필터를 형식의 쿼리 문자열 매개 변수 tagName=tagValue
로 제공할 수 있습니다. 태그 필터는 정확히 일치해야 합니다.
GET /kv?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
지원되는 필터
키 필터 | 효과 |
---|---|
key 은 생략 또는 key=* |
모든 키와 일치 |
key=abc |
abc라는 이름의 키와 일치 |
key=abc* |
abc로 시작하는 키 이름과 일치 |
key=abc,xyz |
키 이름 abc 또는 xyz 와 일치(5 CSV로 제한) |
레이블 필터 | 효과 |
---|---|
label 은 생략 또는 label=* |
모든 레이블과 일치 |
label=%00 |
레이블이 없는 키 값과 일치 |
label=prod |
레이블 prod와 일치 |
label=prod* |
prod로 시작하는 레이블과 일치 |
label=prod,test |
레이블 prod 또는 test(5 CSV로 제한)와 일치 |
태그 필터 | 효과 |
---|---|
tags 은 생략 또는 tags= |
모든 태그와 일치 |
tags=group=app1 |
값으로 명명 group 된 태그가 있는 키-값과 일치 app1 |
tags=group=app1&tags=env=prod |
값이 있는 태그와 값이 있는 group 태그 env 가 있는 키-값 app1 prod 과 일치합니다(태그 필터 5개로 제한됨). |
tags=tag1=%00 |
값으로 명명 tag1 된 태그가 있는 키-값과 일치 null |
tags=tag1= |
빈 값으로 명명 tag1 된 태그가 있는 키 값과 일치 |
예약 문자
*
, , \
,
예약 문자가 값의 일부인 \{Reserved Character}
경우 . 예약되지 않은 문자도 이스케이프할 수 있습니다.
필터 유효성 검사
필터 유효성 검사에 실패하면 응답은 오류 세부 정보가 포함된 HTTP 400
입니다.
HTTP/1.1 400 Bad Request
Content-Type: application/problem+json; charset=utf-8
{
"type": "https://azconfig.io/errors/invalid-argument",
"title": "Invalid request parameter '{filter}'",
"name": "{filter}",
"detail": "{filter}(2): Invalid character",
"status": 400
}
예제
모두
GET /kv?api-version={api-version}
키 이름은 abc로 시작하고 모든 레이블을 포함합니다.
GET /kv?key=abc*&label=*&api-version={api-version}
키 이름은 abc로 시작하고 레이블은 v1 또는 v2와 같습니다.
GET /kv?key=abc*&label=v1,v2&api-version={api-version}
요청 관련 필드
선택적 $select
쿼리 문자열 매개 변수를 사용하고 요청된 필드의 쉼표로 구분된 목록을 제공합니다. $select
매개 변수를 생략하면 응답에 기본 세트가 포함됩니다.
GET /kv?$select=key,value&api-version={api-version} HTTP/1.1
시간 기반 액세스
과거와 같은 결과의 표시를 얻습니다. 자세한 내용은 2.1.1 섹션을 참조하세요. 페이지 매김은 이 문서의 앞부분에서 정의한 대로 계속 지원됩니다.
GET /kv?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json"
Memento-Datetime: Sat, 12 May 2018 02:10:00 GMT
Link: <{relative uri}>; rel="original"
{
"items": [
....
]
}
키 설정
- 필수:
{key}
- 선택 사항:
label
(지정하지 않았거나 label=%00이면 레이블이 없는 키-값을 의미합니다.)
PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json
{
"value": "example value", // optional
"content_type": "user defined", // optional
"tags": { // optional
"tag1": "value1",
"tag2": "value2",
}
}
응답:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8
Last-Modified: Tue, 05 Dec 2017 02:41:26 GMT
ETag: "4f6dd610dd5e4deebc7fbaef685fb903"
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"key": "{key}",
"label": "{label}",
"content_type": "user defined",
"value": "example value",
"last_modified": "2017-12-05T02:41:26.4874615+00:00",
"tags": {
"tag1": "value1",
"tag2": "value2",
}
}
항목이 잠겨 있으면 다음 응답이 반환됩니다.
HTTP/1.1 409 Conflict
Content-Type: application/problem+json; charset="utf-8"
{
"type": "https://azconfig.io/errors/key-locked",
"title": "Modifing key '{key}' is not allowed",
"name": "{key}",
"detail": "The key is read-only. To allow modification unlock it first.",
"status": 409
}
키 설정(조건부)
경합 상태를 방지하려면 헤더를 사용 If-Match
하거나 If-None-Match
요청합니다. etag
인수는 키 표현의 일부입니다.
If-Match
또는 If-None-Match
가 생략된 경우에는 작업이 무조건 수행됩니다.
다음 응답은 현재 표현이 지정된 표현과 일치하는 경우에만 값을 업데이트합니다 etag
.
PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
다음 응답은 현재 표현이 지정된 표현과 일치하지 않는 경우에만 값을 업데이트합니다 etag
.
PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json;
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"
다음 요청은 표현이 이미 있는 경우에만 값을 추가합니다.
PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json;
If-Match: "*"
다음 요청은 표현이 아직 없는 경우에만 값을 추가합니다.
PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json
If-None-Match: "*"
응답
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8
...
또는
HTTP/1.1 412 PreconditionFailed
삭제
- 필수:
{key}
,{api-version}
- 선택 사항:
{label}
(지정하지 않았거나 label=%00이면 레이블이 없는 키-값을 의미합니다.)
DELETE /kv/{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
...
또는
HTTP/1.1 204 No Content
키 삭제(조건부)
이는 이 문서의 앞부분에 있는 "키 설정(조건부)" 섹션과 비슷합니다.