キー値のリビジョン
キー値のリビジョンによって、キー値リソースの履歴表現が定義されます。 リビジョンは、Free レベルのストアの場合は 7 日後、Standard レベルのストアの場合は 30 日後に有効期限が切れます。 リビジョンでは、List
操作がサポートされます。
すべての操作で、key
は省略可能なパラメーターです。 省略されている場合は、すべてのキーを意味します。
すべての操作で、label
は省略可能なパラメーターです。 省略されている場合は、すべてのラベルを意味します。
前提条件
- すべての HTTP 要求が認証される必要があります。 認証に関するセクションを参照してください。
- すべての HTTP 要求で、明示的な
api-version
を指定する必要があります。 バージョン管理に関するセクションを参照してください。
リビジョンを一覧表示する
GET /revisions?label=*&api-version={api-version} HTTP/1.1
応答:
HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json; charset=utf-8"
Accept-Ranges: items
{
"items": [
{
"etag": "4f6dd610dd5e4deebc7fbaef685fb903",
"key": "{key}",
"label": "{label}",
"content_type": null,
"value": "example value",
"last_modified": "2017-12-05T02:41:26.4874615+00:00",
"tags": []
},
...
],
"@nextLink": "{relative uri}"
}
改ページ位置の自動修正
返された項目の数が応答の制限を超えている場合、結果は改ページされます。 省略可能な Link
応答ヘッダーに従い、rel="next"
を使用してナビゲーションを行います。 あるいは、コンテンツによって、@nextLink
プロパティの形式で次のリンクが指定されます。
GET /revisions?api-version={api-version} HTTP/1.1
応答:
HTTP/1.1 OK
Content-Type: application/vnd.microsoft.appconfig.kvs+json; charset=utf-8
Accept-Ranges: items
Link: <{relative uri}>; rel="next"
{
"items": [
...
],
"@nextLink": "{relative uri}"
}
リビジョンのサブセットを一覧表示する
Range
要求ヘッダーを使用します。 応答には、Content-Range
ヘッダーが含まれています。 サーバーでは、要求された範囲を満たせない場合、HTTP 416
(RangeNotSatisfiable
) を使用して応答します。
GET /revisions?api-version={api-version} HTTP/1.1
Range: items=0-2
Response
HTTP/1.1 206 Partial Content
Content-Type: application/vnd.microsoft.appconfig.revs+json; charset=utf-8
Content-Range: items 0-2/80
フィルター処理
key
と label
のフィルター処理の組み合わせがサポートされています。
省略可能な key
と label
のクエリ文字列パラメーターを使用します。
GET /revisions?key={key}&label={label}&api-version={api-version}
key
、label
、およびtags
フィルター処理の組み合わせがサポートされています。
省略可能な key
、 label
、および tags
クエリ文字列パラメーターを使用します。
tagName=tagValue
形式のクエリ文字列パラメーターとして、複数のタグ フィルターを指定できます。 タグ フィルターは完全に一致する必要があります。
GET /revisions?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
サポートされているフィルター
キー フィルター | 結果 |
---|---|
key を省略 (または key=* ) |
すべてのキーに一致します |
key=abc |
abc という名前のキーに一致します |
key=abc* |
abc で始まるキー名に一致します |
key=*abc |
abc で終わるキー名に一致します |
key=*abc* |
abc を含むキー名に一致します |
key=abc,xyz |
キー名 abc または xyz に一致します (CSV の上限は 5 つ) |
ラベル フィルター | 結果 |
---|---|
label を省略 (または label= ) |
ラベルのないキー値と一致します |
label=* |
すべてのラベルに一致します |
label=prod |
prod というラベルに一致します |
label=prod* |
prod で始まるラベルに一致します |
label=*prod |
prod で終わるラベルに一致します |
label=*prod* |
prod を含むラベルに一致します |
label=prod,test |
prod または test というラベルに一致します (CSV の上限は 5 つ) |
タグ フィルター | 結果 |
---|---|
tags を省略 (または tags= ) |
any タグと一致します |
tags=group=app1 |
group という名前のタグを持つキー値と値が一致しますapp1 |
tags=group=app1&tags=env=prod |
値がapp1 group という名前のタグと、env という名前のタグが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
}
例
All:
GET /revisions
キー名が abc で始まる項目:
GET /revisions?key=abc*&api-version={api-version}
キー名が abc または xyz で、ラベルに prod が含まれている項目:
GET /revisions?key=abc,xyz&label=*prod*&api-version={api-version}
特定のフィールドを要求する
省略可能な $select
クエリ文字列パラメーターを使用して、要求するフィールドのコンマ区切りリストを指定します。 $select
パラメーターを省略した場合、応答には既定のセットが含まれます。
GET /revisions?$select=value,label,last_modified&api-version={api-version} HTTP/1.1
時間ベースのアクセス
過去の時間のものとして結果の表現を取得します。 詳細については、「HTTP Framework for Time-Based Access to Resource States -- Memento (リソース状態への時間ベースのアクセスのための HTTP フレームワーク -- Memento)」のセクション 2.1.1 を参照してください。
GET /revisions?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.revs+json"
Memento-Datetime: Sat, 12 May 2018 02:10:00 GMT
Link: <{relative uri}>; rel="original"
{
"items": [
....
]
}