Wykonywanie transakcji grupy jednostek
Usługa Table Service obsługuje transakcje wsadowe dla jednostek, które znajdują się w tej samej tabeli i należą do tej samej grupy partycji. Wiele operacji Wstawianie jednostki, Aktualizowanie jednostki, Scal jednostkę, Usuwanie jednostki, Wstawianie lub Zastępowanie jednostki oraz Operacje wstawiania lub scalania jednostek są obsługiwane w ramach jednej transakcji.
Wymagania dotyczące transakcji grupy jednostek
Transakcja grupy jednostek musi spełniać następujące wymagania:
Wszystkie jednostki objęte operacjami w ramach transakcji muszą mieć taką samą
PartitionKey
wartość.Jednostka może pojawić się tylko raz w transakcji i można wykonać tylko jedną operację.
Transakcja może zawierać maksymalnie 100 jednostek, a jej całkowity ładunek może być większy niż 4 miB w rozmiarze.
Wszystkie jednostki podlegają ograniczeniom opisanym w artykule Understanding the Table Service Data Model (Opis modelu danych usługi Table Service).
Obsługa usługi Table Service dla żądań usługi OData Batch
Semantyka transakcji grupy jednostek jest definiowana przez specyfikację protokołu OData. Specyfikacja OData definiuje następujące pojęcia dotyczące żądań wsadowych:
Zestaw zmian to grupa co najmniej jednej operacji wstawiania, aktualizowania lub usuwania.
Partia jest kontenerem operacji, w tym co najmniej jednym zestawem zmian i operacjami zapytań.
Usługa Table Service obsługuje podzbiór funkcji zdefiniowanych przez specyfikację OData:
- Usługa Table Service obsługuje tylko jeden zestaw zmian w partii. Zestaw zmian może zawierać wiele operacji wstawiania, aktualizowania i usuwania. Jeśli partia zawiera więcej niż jeden zestaw zmian, pierwszy zestaw zmian zostanie przetworzony przez usługę, a dodatkowe zestawy zmian zostaną odrzucone z kodem stanu 400 (Nieprawidłowe żądanie).
Ważne
Wiele operacji względem pojedynczej jednostki nie jest dozwolonych w zestawie zmian.
Należy pamiętać, że operacja kwerendy nie jest dozwolona w partii zawierającej operacje wstawiania, aktualizowania lub usuwania; Musi być przesłany śpiewająco w partii.
Operacje w zestawie zmian są przetwarzane niepodziealnie; oznacza to, że wszystkie operacje w zestawie zmian kończą się powodzeniem lub niepowodzeniem. Operacje są przetwarzane w kolejności określonej w zestawie zmian.
Usługa Table Service nie obsługuje operacji łączenia w zestawie zmian.
Usługa Table Service obsługuje maksymalnie 100 operacji w zestawie zmian.
Transakcje grupy jednostek za pośrednictwem interfejsu REST
W poniższych sekcjach opisano sposób konstruowania żądania wsadowego i interpretowania odpowiedzi wsadowej oraz pokazywania przykładów każdego z nich.
Składnia żądania wsadowego
Aby wykonać żądanie wsadowe za pośrednictwem interfejsu REST, określ $batch
opcję identyfikatora URI żądania. Przykład:
https://myaccount.table.core.windows.net/$batch
Należy pamiętać, że identyfikator URI żądania nie zawiera nazwy tabeli.
Żądanie wsadowe jest wysyłane do serwera z pojedynczą dyrektywą POST. To żądanie musi zawierać x-ms-version
nagłówek. Wartość nagłówka musi być ustawiona na 2009-04-14
lub nowszą.
Ładunek XML to wieloczęściowy komunikat MIME zawierający partię i zestaw zmian. Ładunek zawiera dwa granice MIME:
Granica wsadowa obejmuje zestaw zmian.
Granica zestawu zmian oddziela poszczególne operacje wstawiania, aktualizowania i usuwania w partii.
Pojedyncze żądanie w zestawie zmian jest identyczne z żądaniem wykonanym, gdy ta operacja jest wywoływana samodzielnie. Przykład:
Aby określić
If-Match
nagłówek operacji aktualizacji, scalania lub usuwania, dołącz nagłówek do zestawu nagłówków żądań dla odpowiedniej operacji w zestawie zmian.Aby określić format ładunku (JSON lub ATOM) dla każdej operacji w zestawie zmian, dołącz odpowiednie
Content-Type
nagłówki ,Accept
Version
iDataServiceVersion
, jak wyjaśniono w temacie Payload Format for Table Service Operations (Format ładunku dla operacji usługi Table Service).Aby pominąć echo zawartości odpowiedzi dla jednostki Wstaw, określ
Prefer
nagłówek z wartościąreturn-no-content
dla każdej operacji wstawiania w zestawie zmian. Aby uzyskać więcej informacji na temat nagłówkaPrefer
, zobacz Podsumowanie funkcji usługi Table Service.
Przykładowe żądanie operacji wstawiania, aktualizowania i usuwania
W poniższych przykładach przedstawiono żądania wsadowe zawierające dwie operacje wstawiania jednostek i operację scalania jednostki . W tych przykładach, ponieważ nie interesuje nas ładunek echa w odpowiedzi na operacje wstawiania, dołączamy Prefer:``return-no-content
nagłówek.
Uwaga
Format JSON jest zalecanym formatem ładunku i jest jedynym formatem obsługiwanym w wersjach 2015-12-11 i nowszych.
JSON (wersje 2013-08-15 i nowsze)
W poniższym przykładzie przedstawiono żądanie wsadowe z ładunkiem 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
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)
W poniższym przykładzie przedstawiono żądanie wsadowe z ładunkiem 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—
Przykładowe żądanie dotyczące zapytań
W poniższych przykładach przedstawiono żądanie wsadowe dla zapytania. Należy pamiętać, że tylko jedno zapytanie może być uwzględnione w zestawie zmian.
Uwaga
Format JSON jest zalecanym formatem ładunku i jest jedynym formatem obsługiwanym w wersjach 2015-12-11 i nowszych.
JSON (wersje 2013-08-15 i nowsze)
W poniższym przykładzie przedstawiono żądanie wsadowe z ładunkiem 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
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)
W poniższym przykładzie przedstawiono żądanie wsadowe z ładunkiem 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—
Składnia odpowiedzi wsadowej
Odpowiedź zwraca ogólny kod stanu żądania wsadowego oraz poszczególne kody stanu i fragmenty wyników dla każdej operacji w zestawie zmian. Odpowiedź to wieloczęściowy komunikat MIME zawierający granicę wsadową i granicę zestawu zmian.
Usługa Table Service zwraca kod stanu dla całego żądania wsadowego i co najmniej jeden kod stanu dla operacji w zestawie zmian, w zależności od tego, czy zakończyły się powodzeniem, czy niepowodzeniem.
Zakładając, że żądanie wsadowe zostało prawidłowo autoryzowane i zostało pomyślnie odebrane przez usługę Table, żądanie wsadowe zwraca kod stanu 202 (Zaakceptowane), nawet jeśli jedna z operacji w zestawie zmian zakończy się niepowodzeniem. Jeśli samo żądanie wsadowe zakończy się niepowodzeniem, nie powiedzie się, zanim zostanie wykonana jakakolwiek operacja w zestawie zmian. Na przykład żądanie wsadowe może zakończyć się niepowodzeniem z powodu błędu autoryzacji, w takim przypadku kod stanu wskaże ten błąd.
Operacje w zestawie zmian są przetwarzane niepodziealnie; oznacza to, że wszystkie operacje w partii kończą się powodzeniem lub cała partia kończy się niepowodzeniem. Usługa Table Service kontynuuje operacje przetwarzania w zestawie zmian do momentu awarii. Jeśli operacja zakończy się niepowodzeniem, wszystkie poprzednie operacje w partii zostaną wycofane. Ponadto transakcje grup jednostek są wykonywane z izolacją migawki.
Kod stanu pojedynczej operacji w zestawie zmian jest wyświetlany w odpowiedzi zestawu zmian. Gdy pojedyncza operacja zakończy się niepowodzeniem, odpowiedź zestawu zmian wskazuje kod stanu 400 (Bad Request
). Dodatkowe informacje o błędzie w odpowiedzi wskazują, która operacja nie powiodła się, zwracając indeks tej operacji. Indeks jest numerem sekwencji polecenia w ładunku.
Aby zapoznać się z przykładem, zobacz przykładową odpowiedź o błędzie poniżej.
Przykładowa odpowiedź na operacje tworzenia, aktualizowania i usuwania
W poniższych przykładach przedstawiono odpowiedzi na operacje wsadowe wysyłane w przykładowych żądaniach przedstawionych powyżej.
JSON (wersje 2013-08-15 i nowsze)
W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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--
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)
W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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--
Przykładowa odpowiedź dla zapytań
W poniższych przykładach przedstawiono odpowiedzi dla zapytań wysłanych w przykładowych żądaniach przedstawionych powyżej.
JSON (wersje 2013-08-15 i nowsze)
W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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--
Kanał informacyjny atomów (wersje wcześniejsze niż 2015-12-11)
W poniższym przykładzie przedstawiono odpowiedź na żądanie wykonane przy użyciu ładunku 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--
Przykładowa odpowiedź na błąd
W poniższych przykładach przedstawiono odpowiedzi z żądań wsadowych zawierających operację, która zakończyła się niepowodzeniem. Należy pamiętać, że odpowiedź wsadowa zwraca kod stanu 202 (Zaakceptowano), ale pojedyncza operacja, która nie powiodła się, zwraca kod stanu 400 (Nieprawidłowe żądanie). Dodatkowe informacje o błędzie znajdują się w treści odpowiedzi dla operacji, która zakończyła się niepowodzeniem. Element code
określa kod błędu usługi magazynu, podczas gdy message
element rozpoczyna się od indeksu operacji, po której następuje ciąg komunikatu o błędzie. Aby określić, która operacja nie powiodła się, przeanalizuj wartość indeksu z komunikatu. Operacje są indeksowane od zera.
Odpowiedź na błąd dla żądania w formacie JSON
W przykładzie JSON zwróć uwagę, że operacja, która nie powiodła się, była pierwszą operacją w zestawie zmian.
message
W parze nazwa/wartość komunikat zaczyna się od cyfry 0
, a następnie rozszerzone informacje o błędzie.
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--
Odpowiedź na błąd dla żądania w formacie Atom
W przykładzie Atom zwróć uwagę, że operacja, która nie powiodła się, była czwartą operacją w zestawie zmian. W elemecie message
komunikat zaczyna się od cyfry 3
, a następnie rozszerzone informacje o błędzie.
<message xml:lang="en-US">3:One of the request inputs is not valid.</message>
Oto pełna odpowiedź:
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--