Poprawki klucz-wartość
Poprawka klucz-wartość definiuje historyczną reprezentację zasobu klucz-wartość. Wersje wygasają po upływie 7 dni dla magazynów w warstwie Bezpłatna lub 30 dni w przypadku magazynów w warstwie Standardowa. Poprawki obsługują operację List
.
Dla wszystkich operacji key
jest opcjonalny parametr. Jeśli pominięto, oznacza to dowolny klucz.
Dla wszystkich operacji label
jest opcjonalny parametr. Jeśli pominięto, oznacza to dowolną etykietę.
Wymagania wstępne
- Wszystkie żądania HTTP muszą być uwierzytelnione. Zobacz sekcję uwierzytelniania .
- Wszystkie żądania HTTP muszą podać jawne
api-version
. Zobacz sekcję przechowywanie wersji.
Wyświetlanie listy poprawek
GET /revisions?label=*&api-version={api-version} HTTP/1.1
Odpowiedzi:
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}"
}
Podział na strony
Wynik jest podzielony na strony, jeśli liczba zwracanych elementów przekracza limit odpowiedzi. Postępuj zgodnie z opcjonalnym Link
nagłówkem odpowiedzi i użyj polecenia rel="next"
na potrzeby nawigacji. Alternatywnie zawartość udostępnia następny link w postaci @nextLink
właściwości.
GET /revisions?api-version={api-version} HTTP/1.1
Odpowiedź:
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}"
}
Lista podzbioru poprawek
Użyj nagłówka Range
żądania. Odpowiedź zawiera nagłówek Content-Range
. Jeśli serwer nie może spełnić żądanego zakresu, odpowiada za pomocą protokołu 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
Filtrowanie
Obsługiwana jest kombinacja key
i label
filtrowanie.
Użyj opcjonalnych key
parametrów ciągu zapytania i label
.
GET /revisions?key={key}&label={label}&api-version={api-version}
Obsługiwana jest kombinacja parametrów key
i label
tags
filtrowania.
Użyj opcjonalnych key
parametrów ciągu zapytania i label
tags
.
W formacie można podać wiele filtrów tagów jako parametry tagName=tagValue
ciągu zapytania. Filtry tagów muszą być dokładnie zgodne.
GET /revisions?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}
Obsługiwane filtry
Filtr klucza | Efekt |
---|---|
Element key jest pomijany lub key=* |
Pasuje do dowolnego klucza |
key=abc |
Pasuje do klucza o nazwie abc |
key=abc* |
Pasuje do nazw kluczy rozpoczynających się od abc |
key=*abc |
Dopasuj nazwy kluczy kończące się ciągiem abc |
key=*abc* |
Pasuje do nazw kluczy zawierających abc |
key=abc,xyz |
Pasuje do nazw kluczy abc lub xyz (ograniczony do 5 CSV) |
Filtr etykiet | Efekt |
---|---|
Element label jest pomijany lub label= |
Dopasuje wartości klucz-wartość bez etykiety |
label=* |
Pasuje do dowolnej etykiety |
label=prod |
Pasuje do etykiety prod |
label=prod* |
Dopasuj etykiety rozpoczynające się od prod |
label=*prod |
Dopasuj etykiety, które kończą się prod |
label=*prod* |
Dopasuj etykiety zawierające prod |
label=prod,test |
Dopasuj etykiety prod lub test (ograniczone do 5 CSV) |
Filtr tagów | Efekt |
---|---|
Element tags jest pomijany lub tags= |
Pasuje do dowolnego tagu |
tags=group=app1 |
Pasuje do wartości klucz-, które mają tag o nazwie group z wartością app1 |
tags=group=app1&tags=env=prod |
Pasuje do wartości klucz-, które mają tag o nazwie group z wartością app1 i tag o nazwie env z wartością prod (ograniczone do 5 filtrów tagów) |
tags=tag1=%00 |
Pasuje do wartości klucz-, które mają tag o nazwie tag1 z wartością null |
tags=tag1= |
Pasuje do wartości klucz-, które mają tag o nazwie tag1 z pustą wartością |
Zastrzeżone znaki
Zastrzeżone znaki to:
*
, , \
,
Jeśli zastrzeżony znak jest częścią wartości, należy go uniknić za pomocą polecenia \{Reserved Character}
. Znaki inne niż zastrzeżone mogą być również ucieczki.
Walidacja filtru
Jeśli wystąpi błąd sprawdzania poprawności filtru, odpowiedź to HTTP 400
ze szczegółami błędu:
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
}
Przykłady
Wszystkie:
GET /revisions
Elementy, w których nazwa klucza zaczyna się od abc:
GET /revisions?key=abc*&api-version={api-version}
Elementy, w których nazwa klucza to abc lub xyz, a etykiety zawierają prod:
GET /revisions?key=abc,xyz&label=*prod*&api-version={api-version}
Żądanie określonych pól
Użyj opcjonalnego $select
parametru ciągu zapytania i podaj rozdzielaną przecinkami listę żądanych pól. $select
Jeśli parametr zostanie pominięty, odpowiedź zawiera zestaw domyślny.
GET /revisions?$select=value,label,last_modified&api-version={api-version} HTTP/1.1
Dostęp oparty na czasie
Uzyskaj reprezentację wyniku w przeszłości. Aby uzyskać więcej informacji, zobacz HTTP Framework for Time-Based Access to Resource States -- Memento, sekcja 2.1.1.
GET /revisions?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT
Odpowiedź:
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": [
....
]
}