Share via


Tablo hizmeti işlemleri için yük biçimi

Tablo hizmeti REST API'si, OData yük biçimleri olarak ATOM ve JSON'u destekler. ATOM protokolü Azure depolama hizmetlerinin tüm sürümleri için destekleniyor olsa da JSON protokolü yalnızca 2013-08-15 ve daha yeni sürümler için desteklenir.

  • JSON, önerilen yük biçimidir. JSON, 2013-08-15 ve daha yeni sürümler için desteklenir. JSON'ı sürüm 2015-12-11 ve üzeriyle kullanmanız gerekir.

  • ATOM, 2015-12-11 öncesi sürümler için desteklenir.

Not

Aşağıdaki REST API işlemleri OData API'leri değildir ve şu anda JSON'u desteklemez: Tablo ACL'sini Al, Tablo ACL'sini Ayarla, Tablo Hizmeti Özelliklerini Al ve Tablo Hizmeti Özelliklerini Ayarla.

JSON veya ATOM biçimini belirtmek için ve Accept üst bilgileri için Content-Type uygun değerleri belirtin (aşağıda açıklanmıştır). Aşağıdaki kısıtlamalara dikkat edin:

  • Üst Content-Type bilgi, OData yükü içeren tüm istekler için gereklidir.

  • Üst bilgi sağlanmazsa Accept , yanıtın içerik türü varsayılan olarak olur application/atom+xml.

  • URI parametresinin $format belirtilmesi, OData veri hizmeti sürümü 3.0 olarak ayarlandığında istek üst bilgisinde Accept belirtilen değeri geçersiz kılar. OData hizmet sürümü hakkında ayrıntılı bilgi için bkz. OData Veri Hizmeti Sürüm Üst Bilgilerini Ayarlama .

Yük biçimini belirtmek için ve Accept istek üst bilgilerini aşağıdaki tabloya göre ayarlayınContent-Type:

Yük Biçimi İçerik Türü Üst Bilgisi Üst Bilgiyi Kabul Et Veri Hizmeti Sürümü (REST API Sürümü) Desteklenen API'ler
Atom application/atom+xml application/atom+xml 1.0 (Herhangi bir sürüm)

2.0 (2011-08-18 veya üzeri)

3.0 (2013-08-15 veya üzeri)
QueryTable'lar

Createtable

Tabloyu Sil

Sorgu Varlıkları

Varlık Ekle

Varlık Ekle veya Birleştir

Varlık Ekleme veya Değiştirme

Varlığı Güncelleştir

Varlığı Birleştir

Varlığı Sil
JSON application/json application/json;odata=nometadata

application/json;odata=minimalmetadata

application/json;odata=fullmetadata

Ayrıntılar için aşağıdaki JSON Biçimi bölümüne bakın.
3.0 (2013-08-15 veya üzeri) QueryTable'lar

Createtable

Tabloyu Sil

Sorgu Varlıkları

Varlık Ekle

Varlık Ekle veya Birleştir

Varlık Ekleme veya Değiştirme

Varlığı Güncelleştir

Varlığı Birleştir

Varlığı Sil
XML application/xml application/xml Yok Tablo ACL'lerini alma

Tablo ACL'lerini ayarlama

Tablo Hizmeti Özelliklerini Alma

Tablo Hizmeti Özelliklerini Ayarlama

JSON Biçimi (application/json) (Sürüm 2013-08-15 ve üzeri)

OData, yukarıda açıklanan ATOM biçimine benzer şekilde, bu ad-değer çiftleri için genel kurallar tanımlayarak JSON biçimini genişletir. OData, kimlikler, tür ve bağlantılar gibi denetim bilgileri için kurallı ek açıklamalar kümesi tanımlar. JSON biçimi hakkında ayrıntılı bilgi için bkz. JSON tanıtımı.

OData'nın JSON biçimini kullanmanın temel avantajı, yük boyutunu azaltmak için yükün öngörülebilir bölümlerinin atlanabilmesidir. Bu verileri alıcı uçta yeniden yazmak için eksik bağlantıları hesaplamak, bilgileri yazmak ve verileri denetlemek için ifadeler kullanılır. Yükten nelerin atlandığını denetlemek için üst bilginin bir parçası Accept olarak belirtebileceğiniz üç düzey vardır:

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Aşağıdaki ODATA ek açıklamaları Azure Tablo hizmeti tarafından desteklenir:

  • odata.metadata: Koleksiyon, varlık, ilkel değer veya hizmet belgesi için meta veri URL'si.

  • odata.id: Genellikle kaynağın URL'si olan varlık kimliği.

  • odata.editlink: Varlık güncelleştirilebilirse ve odata.id varlığı düzenlemek için kullanılabilecek bir URL'yi temsil etmiyorsa, girişi düzenlemek/güncelleştirmek için kullanılan bağlantı.

  • odata.type: İçeren nesnenin tür adı.

  • odata.etag: Varlığın ETag'i.

  • PropertyName@odata.type, özel özellikler için: Hedeflenen özelliğin tür adı.

  • PropertyName@odata.type, sistem özellikleri (örneğin, PrimaryKey, RowKeyve Timestamp özellikleri) için: Hedeflenen özelliğin tür adı.

Her düzeyde yer alan bilgiler aşağıdaki tabloda özetlenmiştir:

Annotations odata=fullmetadata odata=minimalmetadata odata=nometadata
odata.metadata Yes Yes Hayır
odata.id Yes Hayır Hayır
odata.editlink Yes Hayır Hayır
odata.type Yes Hayır Hayır
odata.etag Yes Hayır Hayır
PropertyName@odata.type özel özellikler için Yes Yes Hayır
PropertyName@odata.type sistem özellikleri için Yes Hayır Hayır

JSON Akışındaki Özellik Türleri

Ek odata.type açıklama, açık bir özelliğin türünü belirlemek için OData JSON biçiminde kullanılır. Aşağıdaki koşulların tümü karşılandığında bu ek açıklama mevcut olur:

  • JSON denetim düzeyi, JSON Biçimi bölümünde açıklandığı gibi veya odata=fullmetadataolarak ayarlanırodata=minimalmetadata.

  • özelliği özel bir özelliktir. Azure tablolarında yalnızca PartitionKey, RowKeyve Timestamp özelliklerinin sistem özellikleri olduğunu ve tür bilgilerinin içinde $metadatabildirildiğini unutmayın. Bu özelliklerin tür ek açıklaması yalnızca denetim düzeyi olarak ayarlandığında odata=fullmetadatabulunur. Daha fazla bilgi için bkz. Tablo Hizmeti Veri Modelini Anlama.

  • Özelliğin türü, aşağıdaki tabloda özetlenen tür algılama buluşsal yöntemleri aracılığıyla belirlenemez.

Edm türü odata.type ek açıklaması gerekiyor JSON Türü
Edm.Binary Evet Dize
Edm.Boolean No Değişmez Değerler
Edm.DateTime Evet Dize
Edm.Double No Sayısal (ondalık ayırıcı içerir)
Edm.Guid Evet Dize
Edm.Int32 No Sayısal (Ondalık ayırıcı içermez)
Edm.Int64 Evet Dize
Edm.String Hayır Dize
yok No Null

Tablo hizmeti özellikler için değerleri kalıcı null yapmaz. Varlık yazarken, odata.type ek açıklamasıyla veya olmadan bir null değer belirtilebilir ve değeri olan herhangi bir null özellik, istek bu özelliği içermemiş gibi işlenir. Null varlıkları sorgularken özellik değerleri hiçbir zaman döndürülmüyor.

Edm.Double için, ve -Infinity değerleri NaNInfinity türü Stringkullanılarak JSON'da temsil edilir ve odata.type ek açıklaması gerekir. Tablo hizmeti negatif sürümünü NaNdesteklemez ve JSON biçiminde pozitif ile negatif sıfır (olarak 0.0değerlendirilir-0.0) arasında ayrım yapmaz.

Aşağıdaki JSON varlığı, sekiz farklı özellik türünün her biri için bir örnek sağlar:

{  
  "PartitionKey":"mypartitionkey",  
  "RowKey":"myrowkey",  
  "DateTimeProperty@odata.type":"Edm.DateTime",  
  "DateTimeProperty":"2013-08-02T17:37:43.9004348Z",  
  "BoolProperty":false,  
  "BinaryProperty@odata.type":"Edm.Binary",  
  "BinaryProperty":"AQIDBA==",  
  "DoubleProperty":1234.1234,  
  "GuidProperty@odata.type":"Edm.Guid",  
  "GuidProperty":"4185404a-5818-48c3-b9be-f217df0dba6f",  
  "Int32Property":1234,  
  "Int64Property@odata.type":"Edm.Int64",  
  "Int64Property":"123456789012",  
  "StringProperty":"test"  
}  

ve RowKey sistem özellikleri olduğundanPartitionKey, yani tüm tablo satırlarının bu özellikleri tanımlaması gerektiğinden, tür ek açıklamaları varlıkta görünmez. Bu özellikler türü Edm.Stringolarak önceden tanımlanmıştır. Ancak, diğer özellikler özel özelliklerdir ve bu nedenle yukarıdaki tabloda desteklenen temel türlerden birine karşılık gelen tür bilgilerini içerir.

Örnekler:

Aşağıdaki örnek OData girdisi, Azure Tablo depolama alanına varlık ekleme isteği olarak gönderilen JSON biçimini gösterir (ekleme işlemiyle ilgili ayrıntılar için bkz. Varlık Ekleme ):

{  
  "Address":"Mountain View",  
  "Age":23,  
  "AmountDue":200.23,  
  "CustomerCode@odata.type":"Edm.Guid",  
  "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833",  
  "CustomerSince@odata.type":"Edm.DateTime",  
  "CustomerSince":"2008-07-10T00:00:00",  
  "IsActive":true,  
  "NumOfOrders@odata.type":"Edm.Int64",  
  "NumOfOrders":"255",  
  "PartitionKey":"mypartitionkey",  
  "RowKey":"myrowkey1",  
}  

İstemci Azure Tablo depolamadaki bir varlık kümesini sorguladığında, hizmet bir JSON yüküyle yanıt verir (sorgu işlemiyle ilgili ayrıntılar için bkz. Sorgu Varlıkları ). Akış üç bilgi düzeyinden birini içerebilir: meta veri yok, en az meta veri veya tam meta veri. Aşağıdaki örnekler her türü gösterir:

Meta veri yok:

{  
  "value":[  
    {  
      "PartitionKey":"Customer03",  
      "RowKey":"Name",  
      "Timestamp":"2013-08-09T18:55:48.3402073Z",  
      "CustomerSince":"2008-10-01T15:25:05.2852025Z",  
    }  
}  

En az meta veri:

{  
  "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers,  
  "value":[  
    {  
      "PartitionKey":"Customer03",  
      "RowKey":"Name",  
      "Timestamp":"2013-08-09T18:55:48.3402073Z",  
      "CustomerSince@odata.type":"Edm.DateTime",  
      "CustomerSince":"2008-10-01T15:25:05.2852025Z",  
    }  
}  

Tam meta veriler:

{  
  "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",  
  "value":[  
    {  
      "odata.type":"myaccount.Customers",  
      "odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer03',RowKey='Name')",  
      "odata.etag":"W/\"0x5B168C7B6E589D2\"",  
      "odata.editLink":"Customers(PartitionKey='Customer03',RowKey='Name')",  
      "PartitionKey":"Customer03,  
      "RowKey":"Name",  
      "Timestamp@odata.type":"Edm.DateTime",  
      "Timestamp":"2013-08-09T18:55:48.3402073Z",  
      "CustomerSince@odata.type":"Edm.DateTime",  
      "CustomerSince":"2008-10-01T15:25:05.2852025Z",  
    }  
}  

OData JSON biçimi hakkında daha fazla bilgi edinmek için [MS-ODATAJSON]: OData Protokolü JSON Biçim Standartları Destek Belgesi ile birlikte OData JSON BiçimiSürüm 4.0 belirtimine bakın.

Atom Biçimi (uygulama/atom+xml) (Yalnızca 2015-12-11'den önceki sürümler)

Atom , akış olarak adlandırılan ilgili bilgi koleksiyonlarını açıklayan XML tabanlı bir belge biçimidir. Akışlar, girdi olarak bilinen bir dizi öğeden oluşur. AtomPub , temsil ettikleri kaynakların kolayca kategorilere ayrılmasını, gruplandırılabilmesini, düzenlenebilmesini ve bulunabilmesini sağlayan girişler ve akışlar için ek biçim yapıları tanımlar. Ancak, Atom yapılandırılmış verilerin akışlarla nasıl kodlandığını tanımlamadığından , OData yapılandırılmış içeriğin OData tabanlı hizmetler tarafından aktarılabilmesi için bir Atom akışında yapılandırılmış verileri temsil etmeye yönelik bir dizi kural tanımlar.

Örneğin, aşağıdaki örnek OData girdisi REST API kullanarak Azure Tablo depolama alanına varlık ekleme isteği aracılığıyla gönderilen Atom biçimini gösterir (ekleme işlemiyle ilgili ayrıntılar için bkz. Varlık Ekleme ):

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="https://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id />  
  <content type="application/xml">  
    <m:properties>  
      <d:Address>Mountain View</d:Address>  
      <d:Age m:type="Edm.Int32">23</d:Age>  
      <d:AmountDue m:type="Edm.Double">200.23</d:AmountDue>  
      <d:BinaryData m:type="Edm.Binary" m:null="true" />  
      <d:CustomerCode m:type="Edm.Guid">c9da6455-213d-42c9-9a79-3e9149a57833</d:CustomerCode>  
      <d:CustomerSince m:type="Edm.DateTime">2008-07-10T00:00:00</d:CustomerSince>  
      <d:IsActive m:type="Edm.Boolean">true</d:IsActive>  
      <d:NumOfOrders m:type="Edm.Int64">255</d:NumOfOrders>  
      <d:PartitionKey>mypartitionkey</d:PartitionKey>  
      <d:RowKey>myrowkey1</d:RowKey>  
    </m:properties>  
  </content>  
</entry>  

İstemci Tablo depolamadaki bir varlık kümesini sorguladığında, hizmet Atom girdileri koleksiyonu olan bir Atom akışıyla yanıt verir (sorgu işlemiyle ilgili ayrıntılar için bkz. Sorgu Varlıkları ):

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<feed xml:base="https://myaccount.table.core.windows.net/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="https://www.w3.org/2005/Atom">  
  <title type="text">Customers</title>  
  <id>https://myaccount.table.core.windows.net/Customers</id>  
  <link rel="self" title="Customers" href="Customers" />  
  <entry m:etag="W/"0x5B168C7B6E589D2"">  
  <id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer03',RowKey='Name')</id>  
    <title type="text"></title>  
    <updated>2008-10-01T15:26:13Z</updated>  
    <author>  
      <name />  
    </author>  
    <link rel="edit" title="Customers" href="Customers (PartitionKey='Customer03',RowKey='Name')" />  
    <category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />  
    <content type="application/xml">  
      <m:properties>  
        <d:PartitionKey>Customer03</d:PartitionKey>  
        <d:RowKey>Name</d:RowKey>        <d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>  
      </m:properties>  
    </content>  
  </entry>  
</feed>  

Atom Akışındaki Özellik Türleri

Özellik veri türleri OData Protokolü Belirtimi tarafından tanımlanır. Belirtim tarafından tanımlanan tüm veri türleri Tablo hizmeti tarafından desteklenmez. Desteklenen veri türleri ve bunların ortak dil çalışma zamanı (CLR) türleriyle nasıl eşlendiği hakkında bilgi için bkz. Tablo Hizmeti Veri Modelini Anlama.

Bir özellik, açık bir veri türüyle veya açık veri türü olmadan belirtilebilir. Tür atlanırsa, özelliği otomatik olarak veri türü Edm.Stringolarak oluşturulur.

Bir özellik açık bir türle oluşturulursa, varlığı döndüren bir sorgu Atom akışı içinde bu türü içerir, böylece gerekirse var olan bir özelliğin türünü belirleyebilirsiniz. Bir özelliğin türünü bilmek, bu özellik üzerinde filtreleyen bir sorgu oluştururken önemlidir. Daha fazla bilgi için bkz. Tabloları ve Varlıkları Sorgulama.

Özellikler içinDouble, , INFve -INF değerleri NaNAtom'da sayı, pozitif sonsuzluk ve negatif sonsuzluğu göstermek için kullanılır. ve formları Infinity-Infinity da kabul edilir. Tablo hizmeti negatif sürümünü NaNdesteklemez. Atom biçiminde pozitif ve negatif sıfır arasında ayrımdır.

Ayrıca Bkz.

OData Veri Hizmeti Sürüm Üst Bilgilerini Ayarlama
Azure Depolama Hizmetleri için sürüm oluşturma
Tablo Hizmeti Kavramları