Exécution de transactions de groupe d’entités
Le service de Table prend en charge les transactions par lots sur les entités qui se trouvent dans la même table et qui appartiennent au même groupe de partitions. Les opérations d’insertion multiple d’entité, de mise à jour d’entité, d’entité de fusion, de suppression d’entité, d’insertion ou de remplacement et d’entité d’insertion ou de fusion sont prises en charge dans une seule transaction.
Configuration requise pour les transactions de groupe d’entités
Une transaction de groupe d'entités doit remplir les conditions suivantes :
Toutes les entités sujettes aux opérations dans le cadre de la transaction doivent avoir la même valeur
PartitionKey
.Une entité peut s'afficher une seule fois dans la transaction, et une seule opération peut être exécutée dessus.
La transaction peut inclure au maximum 100 entités, et sa charge utile totale ne peut pas dépasser 4 Mio.
Toutes les entités sont soumises aux limitations décrites dans Présentation du modèle de données du service de table.
Prise en charge du service Table pour les demandes par lots OData
La sémantique des transactions de groupe d’entités est définie par la spécification du protocole OData. La spécification OData définit les concepts suivants pour les demandes de lot :
Un ensemble de modifications est un groupe d'une ou plusieurs opérations d'insertion, de mise à jour ou de suppression.
Un lot est un conteneur d'opérations, qui comprend un ou plusieurs ensembles de modifications et opérations de requête.
Le service Table prend en charge un sous-ensemble des fonctionnalités définies par la spécification OData :
- Le service Table prend en charge un seul ensemble de modifications au sein d'un lot. L'ensemble de modifications peut inclure plusieurs opérations d'insertion, de mise à jour et de suppression. Si un lot comprend plusieurs ensembles de modifications, le premier ensemble de modifications sera traité par le service, et les ensembles de modifications supplémentaires seront rejetés avec le code d'état 400 (Demande incorrecte).
Important
Plusieurs opérations sur une seule entité ne sont pas autorisées dans un ensemble de modifications.
Notez qu'une opération de requête n'est pas autorisée au sein d'un lot qui contient des opérations d'insertion, de mise à jour ou de suppression ; elle doit être envoyée séparément dans le lot.
Les opérations dans un ensemble de modifications sont traitées de façon atomique ; autrement dit, toutes les opérations dans l'ensemble de modifications réussissent ou échouent. Les opérations sont traitées dans l'ordre dans lequel elles sont spécifiées dans l'ensemble de modifications.
Le service Table ne prend pas en charge les opérations de liaison dans un ensemble de modifications.
Le service Table prend en charge 100 opérations maximum dans un ensemble de modifications.
Transactions de groupe d'entités via REST
Les sections suivantes décrivent comment construire une demande de lot et comment interpréter la réponse de lot, et donnent des exemples.
Syntaxe de demande de lot
Pour effectuer une requête par lot via REST, spécifiez l’option $batch
sur l’URI de la requête. Par exemple :
https://myaccount.table.core.windows.net/$batch
Notez que l'URI de la demande n'inclut pas le nom de la table.
Une demande de lot est envoyée au serveur avec une seule directive POST. Cette demande doit inclure l'en-tête x-ms-version
; la valeur d'en-tête doit être définie à 2009-04-14
ou ultérieure.
La charge utile XML est un message MIME à plusieurs parties contenant le lot et l'ensemble de modifications. La charge utile comprend deux limites MIME :
Une limite de lot englobe l'ensemble de modifications.
Une limite d'ensemble de modifications sépare les opérations d'insertion, de mise à jour et de suppression individuelles du lot.
Une demande individuelle au sein de l'ensemble de modifications est identique à une demande faite quand cette opération est appelée seule. Par exemple :
Pour spécifier l'en-tête
If-Match
dans une opération de mise à jour, de fusion, ou de suppression, indiquez l'en-tête dans l'ensemble d'en-têtes de demande pour l'opération appropriée dans l'ensemble de modifications.Pour spécifier le format de charge utile (JSON ou ATOM) pour chaque opération dans le jeu de modifications, incluez les en-têtes ,
Accept
Version
etDataServiceVersion
appropriésContent-Type
, comme expliqué en détail dans Format de charge utile pour les opérations de service de table.Pour supprimer l’écho du contenu de la réponse pour l’entité Insert, spécifiez l’en-tête
Prefer
avec lareturn-no-content
valeur pour chaque opération d’insertion dans le jeu de modifications. Pour plus d’informations sur l’en-têtePrefer
, consultez Résumé des fonctionnalités du service de table.
Exemple de demande pour les opérations d'insertion, de mise à jour et de suppression
Les exemples suivants illustrent les demandes de lot contenant deux opérations Insérer une entité et une opération fusionner une entité. Dans ces exemples, étant donné que nous ne sommes pas intéressés par la charge utile d’écho dans la réponse pour les opérations d’insertion, nous incluons l’en-tête Prefer:``return-no-content
.
Notes
JSON est le format de charge utile recommandé et est le seul format pris en charge pour les versions 2015-12-11 et ultérieures.
JSON (versions 2013-08-15 et ultérieures)
L’exemple suivant montre une requête par lot avec une charge utile 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
Atom Feed (versions antérieures à 2015-12-11)
L’exemple suivant montre une requête par lot avec une charge utile 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—
Exemple de demande pour les requêtes
Les exemples suivants illustrent une demande de lot pour une requête. Notez qu'une seule requête peut être incluse dans l'ensemble de modifications.
Notes
JSON est le format de charge utile recommandé et est le seul format pris en charge pour les versions 2015-12-11 et ultérieures.
JSON (versions 2013-08-15 et ultérieures)
L’exemple suivant montre une requête par lot avec une charge utile 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
Atom Feed (versions antérieures à 2015-12-11)
L’exemple suivant montre une requête par lot avec une charge utile 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 de réponse de lot
La réponse renvoie le code d'état général pour la demande de lot, et des codes d'état et des fragments de résultat individuels pour chaque opération dans l'ensemble de modifications. La réponse est un message MIME à plusieurs parties qui comprend une limite de lot et une limite d'ensemble de modifications.
Le service Table renvoie un code d'état pour la demande de lot, et un ou plusieurs codes d'état pour les opérations dans l'ensemble de modifications, en fonction de la réussite ou de l'échec.
En supposant que la demande de lot a été correctement autorisée et qu’elle a été correctement reçue par le service De table, la demande de lot retourne status code 202 (Accepté), même si l’une des opérations du jeu de modifications échoue. Si la demande de lot elle-même échoue, elle échoue avant l'exécution d'une opération dans l'ensemble de modifications. Par exemple, la demande de lot peut échouer en raison d’une erreur d’autorisation, auquel cas le code status indique cet échec.
Les opérations dans un ensemble de modifications sont traitées de façon atomique ; autrement dit, toutes les opérations dans le lot réussissent ou échouent. Le service Table continue de traiter les opérations dans l'ensemble de modifications jusqu'à un échec. Si une opération échoue, toutes les opérations précédentes du lot sont restaurées. En outre, les transactions de groupe d'entités s'exécutent avec l'isolement d'instantané.
Le code d'état pour une opération individuelle dans un ensemble de modifications apparaît dans la réponse de l'ensemble de modifications. Lorsqu'une opération individuelle échoue, la réponse pour l'ensemble de modifications indique le code d'état 400 ({1><1}). Des informations d'erreur supplémentaires au sein de la réponse indiquent l'opération qui a échoué en retournant l'index de cette opération. L'index est le numéro de séquence de la commande dans la charge utile.
Pour obtenir un exemple, consultez l'exemple de réponse d'erreur ci-dessous.
Exemple de réponse pour des opérations de création, de mise à jour et de suppression
Les exemples suivants montre les réponses pour les opérations par lot envoyées dans les exemples de demande indiqués ci-dessus.
JSON (versions 2013-08-15 et ultérieures)
L’exemple suivant montre une réponse pour une requête effectuée avec une charge utile 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--
Atom Feed (versions antérieures à 2015-12-11)
L’exemple suivant montre une réponse pour une requête effectuée avec une charge utile 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--
Exemple de réponse pour les requêtes
Les exemples suivants montrent les réponses pour les requêtes envoyées dans les exemples de demande indiqués ci-dessus.
JSON (versions 2013-08-15 et ultérieures)
L’exemple suivant montre une réponse pour une requête effectuée avec une charge utile 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--
Atom Feed (versions antérieures à 2015-12-11)
L’exemple suivant montre une réponse pour une requête effectuée avec une charge utile 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--
Exemple de réponse d'erreur
Les exemples suivants illustrent des réponses de demandes de lot contenant une opération qui a échoué. Notez que la réponse de lot renvoie le code d'état 202 (Acceptée), mais l'opération individuelle qui a échoué renvoie le code d'état 400 (Demande incorrecte). Des informations d'erreur supplémentaires sont incluses dans le corps de la réponse pour l'opération qui a échoué. L'élément code
spécifie le code d'erreur du service de stockage, alors que l'élément message
commence par l'index de l'opération qui a échoué, suivi de la chaîne de message d'erreur. Pour déterminer quelle opération a échoué, analysez la valeur d'index du message. Les opérations sont indexées en commençant à zéro.
Réponse d'erreur pour la demande au format JSON
Dans l'exemple JSON, notez que l'opération qui a échoué était la première opération dans l'ensemble de modifications. Dans la paire nom/valeur message
, le message commence par le chiffre 0
, suivi des informations d'erreur étendues.
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--
Réponse d'erreur pour la demande au format Atom
Dans l'exemple Atom, notez que l'opération qui a échoué était la quatrième opération dans l'ensemble de modifications. Dans l'élément message
, le message commence par le chiffre 3
, suivi des informations d'erreur étendues.
<message xml:lang="en-US">3:One of the request inputs is not valid.</message>
Voici la réponse complète :
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--