Melakukan transaksi grup entitas
Layanan Tabel mendukung transaksi batch pada entitas yang berada dalam tabel yang sama dan termasuk dalam grup partisi yang sama. Beberapa entitas Sisipkan, Entitas Pembaruan, Entitas Penggabungan, Hapus Entitas, Sisipkan Atau Ganti Entitas, dan operasi Entitas Sisipkan atau Gabungkan didukung dalam satu transaksi.
Persyaratan untuk transaksi grup entitas
Transaksi grup entitas harus memenuhi persyaratan berikut:
Semua entitas yang tunduk pada operasi sebagai bagian dari transaksi harus memiliki nilai yang sama
PartitionKey
.Entitas hanya dapat muncul sekali dalam transaksi, dan hanya satu operasi yang dapat dilakukan terhadapnya.
Transaksi dapat mencakup paling banyak 100 entitas, dan total payload-nya mungkin berukuran tidak lebih dari 4 MiB.
Semua entitas tunduk pada batasan yang dijelaskan dalam Memahami Model Data Layanan Tabel.
Dukungan Layanan Tabel untuk Permintaan Batch OData
Semantik untuk transaksi grup entitas ditentukan oleh Spesifikasi Protokol OData. Spesifikasi OData menentukan konsep berikut untuk permintaan batch:
Set perubahan adalah grup dari satu atau beberapa operasi sisipkan, perbarui, atau hapus.
Batch adalah kontainer operasi, termasuk satu atau beberapa set perubahan dan operasi kueri.
Layanan Tabel mendukung subset fungsionalitas yang ditentukan oleh spesifikasi OData:
- Layanan Tabel hanya mendukung satu perubahan yang diatur dalam batch. Kumpulan perubahan dapat mencakup beberapa operasi sisipkan, perbarui, dan hapus. Jika batch menyertakan lebih dari satu set perubahan, set perubahan pertama akan diproses oleh layanan, dan set perubahan tambahan akan ditolak dengan kode status 400 (Permintaan Buruk).
Penting
Beberapa operasi terhadap satu entitas tidak diizinkan dalam set perubahan.
Perhatikan bahwa operasi kueri tidak diizinkan dalam batch yang berisi operasi sisipkan, perbarui, atau hapus; itu harus dikirimkan secara senyap dalam batch.
Operasi dalam set perubahan diproses secara atomik; artinya, semua operasi dalam set perubahan berhasil atau gagal. Operasi diproses dalam urutan yang ditentukan dalam set perubahan.
Layanan Tabel tidak mendukung operasi penautan dalam kumpulan perubahan.
Layanan Tabel mendukung maksimum 100 operasi dalam kumpulan perubahan.
Transaksi Grup Entitas melalui REST
Bagian berikut menjelaskan cara membuat permintaan batch dan cara menginterpretasikan respons batch, dan menampilkan sampel masing-masing.
Sintaks Permintaan Batch
Untuk melakukan permintaan batch melalui REST, tentukan $batch
opsi pada URI permintaan. Contohnya:
https://myaccount.table.core.windows.net/$batch
Perhatikan bahwa URI permintaan tidak menyertakan nama tabel.
Permintaan batch dikirim ke server dengan satu arahan POST. Permintaan ini harus menyertakan x-ms-version
header; nilai header harus diatur ke 2009-04-14
atau yang lebih baru.
Payload XML adalah pesan MIME multi-bagian yang berisi batch dan set perubahan. Payload mencakup dua batas MIME:
Batas batch mencakup kumpulan perubahan.
Batas set perubahan memisahkan operasi sisipan, pembaruan, dan penghapusan individual dalam batch.
Permintaan individu dalam set perubahan identik dengan permintaan yang dibuat ketika operasi itu dipanggil dengan sendirinya. Contohnya:
Untuk menentukan
If-Match
header pada operasi pembaruan, penggabungan, atau penghapusan, sertakan header dalam kumpulan header permintaan untuk operasi yang sesuai dalam kumpulan perubahan.Untuk menentukan format payload (JSON atau ATOM) untuk setiap operasi dalam set perubahan, sertakan header , ,
Accept
Version
danDataServiceVersion
yang sesuaiContent-Type
, seperti yang dijelaskan dalam detail dalam Format Payload untuk Operasi Layanan Tabel.Untuk menekan gema konten respons untuk Sisipkan Entitas, tentukan
Prefer
header denganreturn-no-content
nilai untuk setiap operasi sisipan dalam kumpulan perubahan. Untuk informasi selengkapnya tentangPrefer
header, lihat Ringkasan Fungsionalitas Layanan Tabel.
Contoh Permintaan untuk Operasi Sisipkan, Perbarui, dan Hapus
Contoh berikut menunjukkan permintaan batch yang berisi dua operasi Sisipkan Entitas dan operasi Entitas Penggabungan . Dalam contoh ini, karena kami tidak tertarik dengan payload echo dalam respons untuk operasi penyisipan, kami menyertakan Prefer:``return-no-content
header .
Catatan
JSON adalah format payload yang direkomendasikan, dan merupakan satu-satunya format yang didukung untuk versi 2015-12-11 dan yang lebih baru.
JSON (versi 2013-08-15 dan yang lebih baru)
Contoh berikut menunjukkan permintaan batch dengan payload JSON.
POST https://myaccount.table.core.windows.net/$batch HTTP/1.1
x-ms-version: 2013-08-15
Accept-Charset: UTF-8
DataServiceVersion: 3.0;
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431
x-ms-date: Mon, 14 Oct 2013 18:25:49 GMT
Authorization: SharedKey myaccount:50daR38MtfezvbMdKrGJVN+8sjDSn+AaA=
Host: 127.0.0.1:10002
Content-Length: 1323
Connection: Keep-Alive
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
Prefer: return-no-content
DataServiceVersion: 3.0;
{"PartitionKey":"Channel_19", "RowKey":"1", "Rating":9, "Text":".NET..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
Prefer: return-no-content
DataServiceVersion: 3.0;
{"PartitionKey":"Channel_17", "RowKey":"2", "Rating":9, "Text":"Azure..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_17', RowKey='3') HTTP/1.1
Content-Type: application/json
Accept: application/json;odata=minimalmetadata
DataServiceVersion: 3.0;
{"PartitionKey":"Channel_19", "RowKey":"3", "Rating":9, "Text":"PDC 2008..."}
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Umpan Atom (versi sebelum 2015-12-11)
Contoh berikut menunjukkan permintaan batch dengan payload Atom.
POST /$batch HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
x-ms-version: 2013-08-15
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 2.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Host: MyHostName:10002
Prefer: return-no-content
Content-Length: ###
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431
Content-Type: multipart/mixed; boundary=changeset_8a28b620-b4bb-458c-a177-0959fb14c977
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-ID: 1
Content-Type: application/atom+xml;type=entry
Content-Length: ###
<?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:PartitionKey>Channel_19</d:PartitionKey>
<d:RowKey>1</d:RowKey>
<d:Rating m:type="Edm.Int32">9</d:Rating>
<d:Text>.NET...</d:Title>
</m:properties>
</content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
POST https://myaccount.table.core.windows.net/Blogs HTTP/1.1
Content-ID: 2
Content-Type: application/atom+xml;type=entry
Prefer: return-no-content
Content-Length: ###
<?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:PartitionKey>Channel_19</d:PartitionKey>
<d:RowKey>2</d:RowKey>
<d:Rating m:type="Edm.Int32">9</d:Rating>
<d:Text>Azure...</d:Title>
</m:properties>
</content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
MERGE https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19', RowKey='3') HTTP/1.1
Content-ID: 3
Content-Type: application/atom+xml;type=entry
Content-Length: ###
<?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>https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='3')</id>
<content type="application/xml">
<m:properties>
<d:PartitionKey>Channel_19</d:PartitionKey>
<d:RowKey>3</d:RowKey>
<d:Rating m:type="Edm.Int32">9</d:Rating>
<d:Text>PDC 2008...</d:Title>
</m:properties>
</content>
</entry>
--changeset_8a28b620-b4bb-458c-a177-0959fb14c977--
--batch_a1e9d677-b28b-435e-a89e-87e6a768a431—
Permintaan Sampel untuk Kueri
Contoh berikut menunjukkan permintaan batch untuk kueri. Perhatikan bahwa hanya satu kueri yang dapat disertakan dalam kumpulan perubahan.
Catatan
JSON adalah format payload yang direkomendasikan, dan merupakan satu-satunya format yang didukung untuk versi 2015-12-11 dan yang lebih baru.
JSON (versi 2013-08-15 dan yang lebih baru)
Contoh berikut menunjukkan permintaan batch dengan payload JSON.
POST https://myaccount.table.core.windows.net/$batch HTTP/1.1
x-ms-version: 2013-08-15
Accept-Charset: UTF-8
DataServiceVersion: 3.0;
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce
x-ms-date: Mon, 14 Oct 2013 19:03:55 GMT
Authorization: SharedKey testaccount1:y6TxCsXeRiR4l1KqihwRJ05Qb5zBk=
Host: 127.0.0.1:10002
Content-Length: 255
Connection: Keep-Alive
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Type: application/http
Content-Transfer-Encoding: binary
GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1
Accept: application/json;odata=minimalmetadata
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Umpan Atom (versi sebelum 2015-12-11)
Contoh berikut menunjukkan permintaan batch dengan payload Atom.
POST /$batch HTTP/1.1
User-Agent: Microsoft ADO.NET Data Services
x-ms-version: 2013-08-15
x-ms-date: Thu, 30 Aug 2013 20:45:13 GMT
Authorization: SharedKeyLite myaccount:asOEzsCDS7YEe6oi+bx47KMwbXL0lYZCOlR/oc3FReQ=
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Length: ###
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce
Content-Type: application/http
Content-Transfer-Encoding: binary
GET https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2') HTTP/1.1
--batch_f351702c-c8c8-48c6-af2c-91b809c651ce—
Sintaks Respons Batch
Respons mengembalikan kode status keseluruhan untuk permintaan batch, dan kode status individual dan fragmen hasil untuk setiap operasi dalam kumpulan perubahan. Responsnya adalah pesan MIME multi-bagian yang menyertakan batas batch dan batas set perubahan.
Layanan Tabel mengembalikan kode status untuk seluruh permintaan batch, dan satu atau beberapa kode status untuk operasi dalam kumpulan perubahan, tergantung pada apakah mereka berhasil atau gagal.
Dengan asumsi bahwa permintaan batch telah diotorisasi dengan benar dan telah berhasil diterima oleh layanan Tabel, permintaan batch mengembalikan kode status 202 (Diterima), bahkan jika salah satu operasi dalam kumpulan perubahan gagal. Jika permintaan batch itu sendiri gagal, permintaan tersebut gagal sebelum operasi apa pun dalam set perubahan dijalankan. Misalnya, permintaan batch mungkin gagal karena kesalahan otorisasi, dalam hal ini kode status akan menunjukkan kegagalan tersebut.
Operasi dalam set perubahan diproses secara atomik; artinya, semua operasi dalam batch berhasil, atau seluruh batch gagal. Layanan Tabel terus memproses operasi dalam set perubahan hingga satu gagal. Jika operasi gagal, semua operasi sebelumnya dalam batch akan digulung balik. Selain itu, transaksi grup entitas dijalankan dengan isolasi rekam jepret.
Kode status untuk operasi individual dalam set perubahan muncul dalam respons set perubahan. Ketika operasi individu gagal, respons untuk set perubahan menunjukkan kode status 400 (Bad Request
). Informasi kesalahan tambahan dalam respons menunjukkan operasi mana yang gagal dengan mengembalikan indeks operasi tersebut. Indeks adalah nomor urutan perintah dalam payload.
Misalnya, lihat contoh respons kesalahan di bawah ini.
Respons Sampel untuk Operasi Buat, Perbarui, dan Hapus
Contoh berikut menunjukkan respons untuk operasi batch yang dikirim dalam permintaan sampel yang ditunjukkan di atas.
JSON (versi 2013-08-15 dan yang lebih baru)
Contoh berikut menunjukkan respons untuk permintaan yang dibuat dengan payload JSON.
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: ed9c96eb-9473-4fd9-abf6-fa4dcf0d6295
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 18:25:49 GMT
Content-Length: 1647
--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880
Content-Type: multipart/mixed; boundary=changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
Content-ID: 1
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Preference-Applied: return-no-content
DataServiceVersion: 3.0;
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='1')
ETag: W/"0x8D101F7E4B662C4"
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
Content-ID: 2
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Preference-Applied: return-no-content
DataServiceVersion: 3.0;
Location: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')
DataServiceId: https://myaccount.table.core.windows.net/Blogs (PartitionKey='Channel_19',RowKey='2')
ETag: W/"0x8C134F7A4B692D8"
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
Content-ID: 3
X-Content-Type-Options: nosniff
Cache-Control: no-cache
DataServiceVersion: 1.0;
ETag: W/"0x8A541B7C4D699D7"
--changesetresponse_a6253244-7e21-42a8-a149-479ee9e94a25--
--batchresponse_e69b1c6c-62ff-471e-ab88-9a4aeef0a880--
Umpan Atom (versi sebelum 2015-12-11)
Contoh berikut menunjukkan respons untuk permintaan yang dibuat dengan payload Atom.
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: b4b49b3e-19a9-4091-a280-da76a09da8d4
Date: Thu, 30 Aug 2013 20:44:09 GMT
334
batchresponse_dc0fea8c-ed83-4aa8-ac9b-bf56a2d46dfb
Content-Type: multipart/mixed; boundary=--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
Content-ID: 1
Cache-Control: no-cache
Preference-Applied: return-no-content
ETag: W/"0x8D101F7E4B662C4"
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')
DataServiceVersion: 3.0;
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
Content-ID: 2
Cache-Control: no-cache
Preference-Applied: return-no-content
ETag: W/"0x8C134F7A4B692D8"
Location: https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='2')
DataServiceVersion: 3.0;
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 204 No Content
Content-ID: 3
Cache-Control: no-cache
ETag: W/"0x8A541B7C4D699D7"
DataServiceVersion: 3.0;
--changesetresponse_8a28b620-b4bb-458c-a177-0959fb14c977--
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--
Respons Sampel untuk Kueri
Contoh berikut menunjukkan respons untuk kueri yang dikirim dalam permintaan sampel yang ditunjukkan di atas.
JSON (versi 2013-08-15 dan yang lebih baru)
Contoh berikut menunjukkan respons untuk permintaan yang dibuat dengan payload JSON.
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6f2aafa3-19e9-434c-85f2-d178941c2d4b
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 19:13:30 GMT
Content-Length: 615
--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 200 OK
DataServiceVersion: 3.0;
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
X-Content-Type-Options: nosniff
Cache-Control: no-cache
ETag: W/"0x5B168C7B6E589D2"
{"odata.metadata":" https://myaccount.table.core.windows.net/Blogs/$metadata#Blogs/@Element","PartitionKey":"Channel_19","RowKey":"2","Timestamp":"2013-10-14T18:25:49.8922467Z","Rating":9,"Text":"Azure..."}
--batchresponse_0a568496-fb38-4a83-9984-5908d7f4c63d--
Umpan Atom (versi sebelum 2015-12-11)
Contoh berikut menunjukkan respons untuk permintaan yang dibuat dengan payload Atom.
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 9202c4a1-43af-4dc0-baca-aa71f7a7407b
Date: Thu, 30 Aug 2013 20:44:10 GMT
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 200 OK
Content-Type: application/atom+xml;charset=utf-8
Cache-Control: no-cache
ETag: W/"0x5B168C7B6E589D2"
DataServiceVersion: 3.0;
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<entry xml:base="http://127.0.0.1:10002/testaccount1/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:etag="W/"0x5B168C7B6E589D2"" xmlns="https://www.w3.org/2005/Atom">
<id> https://myaccount.table.core.windows.net/Blogs(PartitionKey='Channel_19',RowKey='1')</id>
<title type="text"></title>
<updated>2013-08-30T20:44:10Z</updated>
<author>
<name />
</author>
<link rel="edit" title="Blogs" href=" Blogs(PartitionKey='Channel_19',RowKey='2')" />
<category term="myaccount.Blogs" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:PartitionKey>Channel_19</d:PartitionKey>
<d:RowKey>2</d:RowKey>
<d:Timestamp m:type="Edm.DateTime">2013-08-30T20:44:09.5789464Z</d:Timestamp>
<d:Text>.Net...</d:RowKey>
<d:Rating m:type="Edm.Int32">9</d:Rating>
</m:properties>
</content>
</entry>
--batchresponse_4c637ba4-b2f8-40f8-8856-c2d10d163a83--
Respons Kesalahan Sampel
Contoh berikut menunjukkan respons dari permintaan batch yang berisi operasi yang gagal. Perhatikan bahwa respons batch mengembalikan kode status 202 (Diterima), tetapi operasi individual yang gagal mengembalikan kode status 400 (Permintaan Buruk). Informasi kesalahan tambahan disertakan dalam isi respons untuk operasi yang gagal. Elemen code
menentukan kode kesalahan layanan penyimpanan, sedangkan message
elemen dimulai dengan indeks operasi yang gagal, diikuti oleh string pesan kesalahan. Untuk menentukan operasi mana yang gagal, uraikan nilai indeks dari pesan. Operasi diindeks mulai dari nol.
Respons Kesalahan untuk Permintaan dalam Format JSON
Dalam contoh JSON, perhatikan bahwa operasi yang gagal adalah operasi pertama dalam kumpulan perubahan.
message
Dalam pasangan nama/nilai, pesan dimulai dengan angka 0
, diikuti oleh informasi kesalahan yang diperluas.
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Content-Type: multipart/mixed; boundary=batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 8abd3c55-a72e-47ba-ae0b-ba43abeb76ae
x-ms-version: 2013-08-15
X-Content-Type-Options: nosniff
Date: Mon, 14 Oct 2013 19:21:58 GMT
Content-Length: 1051
--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca
Content-Type: multipart/mixed; boundary=changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1
--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 400 Bad Request
Content-ID: 1
X-Content-Type-Options: nosniff
DataServiceVersion: 3.0;
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
{"odata.error":{"code":"OutOfRangeInput","message":{"lang":"en-US","value":"0:One of the request inputs is out of range.\nRequestId:8abd3c55-a72e-47ba-ae0b-ba43abeb76ae\nTime:2013-10-14T19:21:58.0890048Z}}}
--changesetresponse_e2a26601-bba8-4c1a-8a8c-bb66badcbca1--
--batchresponse_4e1c04af-af2b-4cfc-9e35-7677a5efcfca--
Respons Kesalahan untuk Permintaan dalam Format Atom
Dalam contoh Atom, perhatikan bahwa operasi yang gagal adalah operasi keempat dalam set perubahan.
message
Dalam elemen , pesan dimulai dengan angka 3
, diikuti oleh informasi kesalahan yang diperluas.
<message xml:lang="en-US">3:One of the request inputs is not valid.</message>
Berikut adalah respons lengkapnya:
HTTP/1.1 202 Accepted
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: multipart/mixed; boundary=batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 45ac953e-a4a5-42ba-9b4d-97bf74a8a32e
Date: Thu, 30 Apr 2009 20:45:13 GMT
6E7
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876
Content-Type: multipart/mixed; boundary=changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec
--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 400 Bad Request
Content-ID: 4
Content-Type: application/xml
Cache-Control: no-cache
DataServiceVersion: 1.0;
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>InvalidInput</code>
<message xml:lang="en-US">3:One of the request inputs is not valid.</message>
</error>
--changesetresponse_6cc856b4-8cb9-41eb-b8d2-bb73475c6cec--
--batchresponse_7ab1553a-7dd6-44e7-8107-bf1ea1ab1876--