Aracılığıyla paylaş


Anahtar değerler

Anahtar-değer, benzersiz bileşimi tarafından tanımlanan bir kaynaktır key + label. label isteğe bağlıdır. Etiket içermeyen bir anahtar-değere açıkça başvurmak için "\0" (URL olarak %00kodlanmış) kullanın. Her işlemin ayrıntılarına bakın.

Operations

  • Al
  • Birden çok listele
  • Ayarla
  • Sil

Önkoşullar

  • Tüm HTTP isteklerinin kimliği doğrulanmalıdır. Kimlik doğrulama bölümüne bakın.
  • Tüm HTTP istekleri açık api-versionsağlamalıdır. Sürüm oluşturma bölümüne bakın.

Sözdizimi

{
  "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]
}

Anahtar-değer alma

Gerekli: {key}, {api-version}
İsteğe bağlı: label (Atlanırsa, etiketsiz bir anahtar-değer anlamına gelir.)

GET /kv/{key}?label={label}&api-version={api-version}

Yanıt:

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"
  }
}

Anahtar yoksa aşağıdaki yanıt döndürülür:

HTTP/1.1 404 Not Found

Get (koşullu)

İstemci önbelleğini geliştirmek için üst bilgileri kullanın If-Match veya If-None-Match isteyin. etag bağımsız değişkeni, anahtar gösteriminin bir parçasıdır. Daha fazla bilgi için 14.24 ve 14.26 bölümlerine bakın.

Aşağıdaki istek anahtar-değeri yalnızca geçerli gösterim belirtilen etagile eşleşmiyorsa alır:

GET /kv/{key}?api-version={api-version} HTTP/1.1
Accept: application/vnd.microsoft.appconfig.kv+json;
If-None-Match: "{etag}"

Yanıt:

HTTP/1.1 304 NotModified

veya

HTTP/1.1 200 OK

Anahtar-değerleri listeleme

İsteğe bağlı: key (Belirtilmezse herhangi bir anahtar anlamına gelir.)

İsteğe bağlı: label (Belirtilmezse herhangi bir etiket anlamına gelir.)

GET /kv?label=*&api-version={api-version} HTTP/1.1

Yanıt:

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json; charset=utf-8

İsteğe bağlı: tags (Belirtilmezse, herhangi bir etiket anlamına gelir.)

GET /kv?key=Test*&label=*&tags=tag1=value1&tags=tag2=value2&api-version={api-version} HTTP/1.1

Yanıt:

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kvset+json; charset=utf-8

Diğer seçenekler için bu makalenin devamında yer alan "Filtreleme" bölümüne bakın.

Anahtar-değerleri listeleme (koşullu olarak)

İstemci önbelleğini geliştirmek için üst bilgileri kullanın If-Match veya If-None-Match isteyin. etag bağımsız değişkeni, liste anahtar-değerleri yanıt gövdesinin ve üst bilgisinin bir parçasıdır. If-None-Match Veya If-Match atlanırsa, işlem koşulsuz olur.

Aşağıdaki yanıt yalnızca geçerli gösterim belirtilen etagile eşleşiyorsa anahtar-değeri alır:

GET /kv?key={key}&label={label}&api-version={api-version} HTTP/1.1
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

Yanıt:

HTTP/1.1 412 PreconditionFailed

veya

HTTP/1.1 200 OK

Aşağıdaki yanıt, anahtar-değerleri yalnızca geçerli gösterimin belirtilen etagile eşleşmemesi durumunda alır:

GET /kv?key={key}&label={label}&api-version={api-version} HTTP/1.1
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

Yanıt:

HTTP/1.1 304 NotModified

veya

HTTP/1.1 200 OK

Sayfalandırma

Döndürülen öğe sayısı yanıt sınırını aşarsa sonuç sayfalanır. İsteğe bağlı Link yanıt üst bilgilerini izleyin ve gezinti için kullanın rel="next" . Alternatif olarak, içerik özelliği biçiminde @nextLink bir sonraki bağlantı sağlar. Bağlı URI bağımsız değişkenini api-version içerir.

GET /kv?api-version={api-version} HTTP/1.1

Yanıt:

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}"
}

Filtreleme

ve filtrelemenin key label bir bileşimi desteklenir. İsteğe bağlı key ve label sorgu dizesi parametrelerini kullanın.

GET /kv?key={key}&label={label}&api-version={api-version}

, labelve tags filtrelemenin keybirleşimi desteklenir. İsteğe bağlı key, labelve tags sorgu dizesi parametrelerini kullanın. Biçiminde sorgu dizesi parametresi tagName=tagValue olarak birden çok etiket filtresi sağlanabilir. Etiket filtreleri tam eşleşmelidir.

GET /kv?key={key}&label={label}&tags={tagFilter1}&tags={tagFilter2}&api-version={api-version}

Desteklenen filtreler

Anahtar filtresi Etki
key atlanıyor veya key=* Herhangi bir anahtarla eşleşir
key=abc abc adlı anahtarla eşleşir
key=abc* abc ile başlayan anahtar adlarıyla eşleşir
key=abc,xyz Anahtar adları abc veya xyz ile eşleşir (5 CSV ile sınırlıdır)
Etiket filtresi Etki
label atlanıyor veya label=* Herhangi bir etiketle eşleşir
label=%00 Anahtar-değerleri etiketsiz olarak eşleştirir
label=prod Prod etiketiyle eşleşir
label=prod* Prod ile başlayan etiketlerle eşleşir
label=prod,test Üretim veya test etiketleriyle eşleşir (5 CSV ile sınırlıdır)
Etiketler filtresi Etki
tags atlanıyor veya tags= Herhangi bir etiketle eşleşir
tags=group=app1 değeriyle adlı group etikete sahip anahtar-değerlerle eşleşir app1
tags=group=app1&tags=env=prod değeriyle adlı etikete ve değerle app1 adlı group env bir etikete sahip anahtar-değerlerle eşleşir (5 etiket filtresiyle prodsınırlıdır)
tags=tag1=%00 değeriyle adlı tag1 etikete sahip anahtar-değerlerle eşleşir null
tags=tag1= Boş değerle adlı tag1 etikete sahip anahtar-değerlerle eşleşir

Ayrılmış karakterler

*, \, ,

Ayrılmış karakter değerin bir parçasıysa, kullanılarak \{Reserved Character}kaçış karakteri kullanılmalıdır. Ayrılmış olmayan karakterler de kaçılabilir.

Filtre doğrulama

Filtre doğrulaması başarısız olursa yanıt, hata ayrıntılarıyla HTTP 400 olur:

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
}

Örnekler

  • Tümü

    GET /kv?api-version={api-version}
    
  • Anahtar adı abc ile başlar ve tüm etiketleri içerir

    GET /kv?key=abc*&label=*&api-version={api-version}
    
  • Anahtar adı abc ile başlar ve etiket v1 veya v2'ye eşittir

    GET /kv?key=abc*&label=v1,v2&api-version={api-version}
    

Belirli alanlar isteme

İsteğe bağlı $select sorgu dizesi parametresini kullanın ve istenen alanların virgülle ayrılmış listesini sağlayın. $select Parametresi atlanırsa, yanıt varsayılan kümeyi içerir.

GET /kv?$select=key,value&api-version={api-version} HTTP/1.1

Zamana bağlı erişim

Sonucun geçmiş bir zamanda olduğu gibi bir gösterimini elde edin. Daha fazla bilgi için bkz. bölüm 2.1.1. Sayfalandırma, bu makalenin önceki bölümlerinde tanımlandığı şekilde hala desteklenmektedir.

GET /kv?api-version={api-version} HTTP/1.1
Accept-Datetime: Sat, 12 May 2018 02:10:00 GMT

Yanıt:

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": [
        ....
    ]
}

Anahtarı ayarla

  • Gerekli: {key}
  • İsteğe bağlı: label (Belirtilmezse veya label=%00, etiket olmadan anahtar-değer anlamına gelir.)
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",
  }
}

Yanıt:

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",
  }
}

Öğe kilitliyse aşağıdaki yanıt döndürülür:

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
}

Anahtarı ayarlama (koşullu olarak)

Yarış koşullarını önlemek için üst bilgileri kullanın If-Match veya If-None-Match isteyin. etag bağımsız değişkeni, anahtar gösteriminin bir parçasıdır. If-None-Match Veya If-Match atlanırsa, işlem koşulsuz olur.

Aşağıdaki yanıt yalnızca geçerli gösterim belirtilen etagile eşleşiyorsa değeri güncelleştirir:

PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json
If-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

Aşağıdaki yanıt değeri yalnızca geçerli gösterim belirtilen etagile eşleşmiyorsa güncelleştirir:

PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json;
If-None-Match: "4f6dd610dd5e4deebc7fbaef685fb903"

Aşağıdaki istek yalnızca bir gösterim zaten varsa değeri ekler:

PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json;
If-Match: "*"

Aşağıdaki istek yalnızca bir gösterim yoksa değeri ekler:

PUT /kv/{key}?label={label}&api-version={api-version} HTTP/1.1
Content-Type: application/vnd.microsoft.appconfig.kv+json
If-None-Match: "*"

Yanıtlar

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8
...

veya

HTTP/1.1 412 PreconditionFailed

Sil

  • Gerekli: {key}, {api-version}
  • İsteğe bağlı: {label} (Belirtilmezse veya label=%00, etiket olmadan anahtar-değer anlamına gelir.)
DELETE /kv/{key}?label={label}&api-version={api-version} HTTP/1.1

Yanıt: Silinen anahtar değerini döndürebilir veya anahtar-değer yoksa hiçbirini döndüremezsiniz.

HTTP/1.1 200 OK
Content-Type: application/vnd.microsoft.appconfig.kv+json; charset=utf-8
...

veya

HTTP/1.1 204 No Content

Anahtarı silme (koşullu olarak)

Bu, bu makalenin önceki bölümlerindeki "Anahtarı ayarla (koşullu)" bölümüne benzer.