Provádění transakcí skupin entit
Služba Table service podporuje dávkové transakce u entit, které jsou ve stejné tabulce a patří do stejné skupiny oddílů. Operace Vícenásobné vložení entity, aktualizace entity, sloučení entity, odstranění entity, vložení nebo nahrazení entity a vložení nebo sloučení entity jsou podporovány v rámci jedné transakce.
Požadavky na transakce skupin entit
Transakce skupiny entit musí splňovat následující požadavky:
Všechny entity, které jsou předmětem operací v rámci transakce, musí mít stejnou
PartitionKey
hodnotu.Entita se v transakci může zobrazit pouze jednou a lze s ní provést pouze jednu operaci.
Transakce může obsahovat maximálně 100 entit a její celková datová část nesmí být větší než 4 MiB.
Na všechny entity se vztahují omezení popsaná v tématu Principy datového modelu služby Table Service.
Podpora služby Table Service pro žádosti OData Batch
Sémantiku pro transakce skupin entit definuje specifikace protokolu OData. Specifikace OData definuje následující koncepty dávkových požadavků:
Sada změn je skupina jedné nebo více operací vložení, aktualizace nebo odstranění.
Batch je kontejner operací, včetně jedné nebo více sad změn a operací dotazů.
Služba Table podporuje podmnožinu funkcí definovaných specifikací OData:
- Služba Table service podporuje pouze jednu sadu změn v rámci dávky. Sada změn může zahrnovat několik operací vložení, aktualizace a odstranění. Pokud dávka obsahuje více než jednu sadu změn, služba zpracuje první sadu změn a další sady změn budou odmítnuty se stavovým kódem 400 (Chybná žádost).
Důležité
V rámci sady změn není povoleno více operací s jednou entitou.
Všimněte si, že operace dotazu není povolena v rámci dávky, která obsahuje operace vložení, aktualizace nebo odstranění. musí být odeslán jednotlivě v dávce.
Operace v rámci sady změn se zpracovávají atomicky; to znamená, že všechny operace v sadě změn buď proběhnou úspěšně, nebo selžou. Operace se zpracovávají v pořadí, v jakém jsou zadané v sadě změn.
Služba Table Service nepodporuje operace propojení v sadě změn.
Služba Table Service podporuje maximálně 100 operací v sadě změn.
Transakce skupin entit přes REST
Následující části popisují, jak vytvořit dávkový požadavek a jak interpretovat dávkovou odpověď a zobrazit ukázky z nich.
Syntaxe požadavků služby Batch
Pokud chcete provést dávkový požadavek přes REST, zadejte $batch
možnost v identifikátoru URI požadavku. Příklad:
https://myaccount.table.core.windows.net/$batch
Všimněte si, že identifikátor URI požadavku neobsahuje název tabulky.
Dávkový požadavek se odešle na server s jednou direktivou POST. Tento požadavek musí obsahovat hlavičku x-ms-version
; hodnota hlavičky musí být nastavená na 2009-04-14
hodnotu nebo novější.
Datová část XML je vícedílná zpráva MIME obsahující dávku a sadu změn. Datová část zahrnuje dvě hranice MIME:
Hranice dávky zahrnuje sadu změn.
Hranice sady změn odděluje jednotlivé operace vložení, aktualizace a odstranění v dávce.
Individuální požadavek v rámci sady změn je shodný s požadavkem provedeným při vlastním vyvolání této operace. Příklad:
Pokud chcete zadat hlavičku
If-Match
u operace aktualizace, sloučení nebo odstranění, zahrňte hlavičku do sady hlaviček požadavků pro příslušnou operaci v sadě změn.Pokud chcete zadat formát datové části (JSON nebo ATOM) pro každou operaci v sadě změn, zahrňte příslušné
Content-Type
hlavičky ,Accept
Version
aDataServiceVersion
, jak je podrobně vysvětleno v tématu Formát datové části pro operace služby Table Service.Chcete-li potlačit odezvu obsahu odpovědi pro entitu Vložení, zadejte
Prefer
v sadě změn hlavičkureturn-no-content
s hodnotou pro každou operaci vložení. Další informace o hlavičce najdete vPrefer
tématu Souhrn funkcí služby Table Service.
Ukázkový požadavek pro operace vložení, aktualizace a odstranění
Následující příklady ukazují dávkové požadavky obsahující dvě operace Vložení entity a operaci sloučení entity . Vzhledem k tomu, že v těchto příkladech nemáme zájem o datovou část echo v odpovědi pro operace vložení, zahrneme hlavičku Prefer:``return-no-content
.
Poznámka
Doporučený formát datové části je JSON, který je jediným podporovaným formátem pro verze 2015-12-11 a novější.
JSON (verze 2013-08-15 a novější)
Následující příklad ukazuje dávkový požadavek s datovou částí 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
Informační kanál Atom (verze před 11. 12. 2015)
Následující příklad ukazuje dávkový požadavek s datovou částí 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—
Ukázkový požadavek pro dotazy
Následující příklady ukazují dávkový požadavek na dotaz. Všimněte si, že do sady změn může být zahrnut pouze jeden dotaz.
Poznámka
Doporučený formát datové části je JSON, který je jediným podporovaným formátem pro verze 2015-12-11 a novější.
JSON (verze 2013-08-15 a novější)
Následující příklad ukazuje dávkový požadavek s datovou částí 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
Informační kanál Atom (verze před 11. 12. 2015)
Následující příklad ukazuje dávkový požadavek s datovou částí 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—
Syntaxe dávkové odpovědi
Odpověď vrátí celkový stavový kód dávkového požadavku a jednotlivé stavové kódy a fragmenty výsledků pro každou operaci v sadě změn. Odpověď je vícedílná zpráva MIME, která obsahuje dávkovou hranici a hranici sady změn.
Služba Table service vrátí stavový kód pro celou dávkovou žádost a jeden nebo více stavových kódů pro operace v sadě změn v závislosti na tom, jestli byly úspěšné nebo neúspěšné.
Za předpokladu, že byl dávkový požadavek správně autorizován a úspěšně přijat službou Table Service, vrátí dávkový požadavek stavový kód 202 (Přijato), i když jedna z operací v sadě změn selže. Pokud samotný dávkový požadavek selže, selže před provedením jakékoli operace v sadě změn. Dávkový požadavek může například selhat kvůli chybě autorizace, v takovém případě stavový kód bude indikovat, že došlo k chybě.
Operace v sadě změn se zpracovávají atomicky; to znamená, že buď všechny operace v dávce proběhnou úspěšně, nebo selže celá dávka. Služba Table service pokračuje ve zpracování operací v sadě změn, dokud se jeden nezdaří. Pokud operace selže, vrátí se zpět všechny předchozí operace v dávce. Kromě toho se transakce skupin entit spouštějí s izolací snímků.
Stavový kód pro jednotlivé operace v rámci sady změn se zobrazí v odpovědi sady změn. Pokud selže jednotlivá operace, bude odpověď na sadu změn indikovat stavový kód 400 (Bad Request
). Další informace o chybě v odpovědi označují, která operace selhala, a to vrácením indexu této operace. Index je pořadové číslo příkazu v datové části.
Příklad: Níže najdete ukázkovou chybovou odpověď.
Ukázková odpověď pro operace vytvoření, aktualizace a odstranění
Následující příklady ukazují odpovědi na dávkové operace odeslané v ukázkových požadavcích uvedených výše.
JSON (verze 2013-08-15 a novější)
Následující příklad ukazuje odpověď na požadavek provedený s datovou částí 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--
Informační kanál Atom (verze před 11. 12. 2015)
Následující příklad ukazuje odpověď na požadavek provedený s datovou částí 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--
Ukázková odpověď pro dotazy
Následující příklady ukazují odpovědi na dotazy odeslané v ukázkových požadavcích uvedených výše.
JSON (verze 2013-08-15 a novější)
Následující příklad ukazuje odpověď na požadavek provedený s datovou částí 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--
Informační kanál Atom (verze před 11. 12. 2015)
Následující příklad ukazuje odpověď na požadavek provedený s datovou částí 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--
Ukázková odpověď na chybu
Následující příklady ukazují odpovědi z dávkových požadavků obsahujících operaci, která selhala. Všimněte si, že dávková odpověď vrátí stavový kód 202 (Přijato), ale jednotlivá operace, která selhala, vrátí stavový kód 400 (Chybný požadavek). Další informace o chybě jsou součástí textu odpovědi pro neúspěšnou operaci. Element code
určuje kód chyby služby úložiště, zatímco message
element začíná indexem neúspěšné operace následovaný řetězcem chybové zprávy. Pokud chcete zjistit, která operace selhala, parsujte hodnotu indexu ze zprávy. Operace se indexují od nuly.
Odpověď na chybu pro požadavek ve formátu JSON
V příkladu JSON si všimněte, že operace, která selhala, byla první operací v sadě změn. Ve dvojici message
název/hodnota začíná zpráva číslicí 0
následovanou rozšířenými informacemi o chybě.
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--
Chybová odpověď pro požadavek ve formátu Atom
V příkladu Atom si všimněte, že neúspěšná operace byla čtvrtou operací v sadě změn. V elementu message
zpráva začíná číslicí 3
, následovanou rozšířenými informacemi o chybě.
<message xml:lang="en-US">3:One of the request inputs is not valid.</message>
Tady je úplná odpověď:
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--