VENTES: 1-800-867-1389

Query Entities

Mis à jour: février 2014

L'opération Query Entities interroge les entités dans une table et comprend les options $filter et $select.

Pour les demandes qui utilisent l'option de requête $select, la demande doit être faite à l'aide de la version du 18/08/2011 ou d'une version ultérieure. En outre, les en-têtes DataServiceVersion et MaxDataServiceVersion doivent avoir la valeur 2.0. La demande Query Entities peut être construite comme indiqué ci-dessous. HTTPS est recommandé. Remplacez moncompte par le nom de votre compte de stockage et mytable par le nom de votre table :

 

Méthode URI de demande Version HTTP

GET

https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names>

HTTP/1.1

L'adresse de l'entité qui doit être interrogée peut prendre plusieurs formes dans l'URI de la demande. Pour plus d'informations, consultez Interrogation de tables et d'entités.

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service de Table sous la forme 127.0.0.1:10002, suivi du nom de compte de stockage émulé :

 

Méthode URI de demande Version HTTP

GET

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names>

HTTP/1.1

Le service de Table dans l'émulateur de stockage et le service de Table de Windows® Azure™ diffèrent sur plusieurs points. Pour plus d'informations, consultez About Development Storage et Différences entre l'émulateur de stockage et les services de stockage Azure.

L'opération Query Entities prend en charge les options de requête définies par la Spécification du protocole OData. Pour plus d'informations, consultez Conventions d'URI OData.

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.

 

En-tête de demande Description

Authorization

Obligatoire. Spécifie le schéma d'authentification, le nom du compte et la signature. Pour plus d'informations, consultez Authentification pour les services de stockage Azure.

Date - ou - x-ms-date

Obligatoire. Spécifie le temps universel coordonné (UTC) pour la demande. Pour plus d'informations, consultez Authentification pour les services de stockage Azure.

x-ms-version

Ce paramètre est facultatif. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez Contrôle de version pour les services de stockage Azure.

Accept

Ce paramètre est facultatif. Spécifie le type de contenu accepté de la charge utile de réponse. Les valeurs possibles sont les suivantes :

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Pour plus d'informations, consultez Format de charge utile pour les opérations du service Table.

x-ms-client-request-id

Ce paramètre est facultatif. Fournit une valeur opaque générée par le client avec une limite de caractère de 1 Ko qui est enregistrée dans les journaux d'analyse quand la journalisation de l'analyse de stockage est activée. L'utilisation de cet en-tête est recommandée pour la corrélation des activités côté client avec les requêtes reçues par le serveur. Pour plus d'informations, consultez À propos de la journalisation Storage Analytics et Journalisation du stockage Windows Azure : utilisation des journaux pour suivre les demandes de stockage.

Request Syntax:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince  HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Mon, 25 Nov 2013 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 2.0;NetFx
MaxDataServiceVersion: 2.0;NetFx

La réponse inclut un code d'état HTTP, un ensemble d'en-têtes de réponse et un corps de réponse.

Une opération ayant réussi retourne le code d'état 200 (OK).

Pour plus d'informations sur les codes d'état, consultez Codes d'état et codes d'erreur et Codes d'erreur de service de Table.

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

 

En-tête de réponse Description

x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey

Si le nombre d'entités à renvoyer dépasse 1 000, si l'intervalle de délai du serveur est dépassé, ou si la requête dépasse la limite de partition, l'en-tête de réponse inclut les en-têtes de continuation x-ms-continuation-NextPartitionKey et x-ms-continuation-NextRowKey.

Pour plus d'informations sur l'utilisation des jetons de continuation, consultez Délai d'expiration de requête et pagination.

x-ms-request-id

Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande. Pour plus d'informations, consultez Dépannage des opérations de l'API.

x-ms-version

Indique la version du service de Table utilisée pour exécuter la demande. Cet en-tête est retourné pour les demandes effectuées avec la version du 19.09.09 ou ultérieure.

Date

Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.

Content-Type

Indique le type de contenu de la charge utile. La valeur de cet en-tête dépend de la valeur de l'en-tête de demande Accept. Les valeurs possibles sont les suivantes :

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Pour plus d'informations sur les types de contenu valides, consultez Format de charge utile pour les opérations du service Table.

Response Status:
HTTP/1.1 200 OK

Response Headers:
Content-Type: application/atom+xml;charset=utf-8
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 25 Nov 2013 15:25:14 GMT
x-ms-version: 2013-08-15
Connection: close

L'opération Query Entities retourne la liste des entités dans une table en tant que jeu d'entités OData, dans un flux JSON ou Atom, selon l'en-tête Accept de la demande.

Voici un exemple d'URI de demande pour une opération Query Entities sur une table Customers.

GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince

Voici le corps de la réponse pour un flux Atom :

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

Le flux de réponse JSON est le suivant :

Aucune métadonnée :

{
   "value":[
      {
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

Métadonnées minimales :

{
   "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
   "value":[
      {
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince@odata.type":"Edm.DateTime",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

Métadonnées complètes :

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

Cette opération peut être exécutée par le propriétaire du compte et par toute personne qui dispose d'une signature d'accès partagé qui a l'autorisation d'exécuter cette opération.

Une requête du service de Table peut retourner un maximum de 1 000 entités à la fois et peut s'exécuter pendant cinq secondes au maximum. Si le jeu de résultats contient plus de 1 000 entités, si la requête ne s'est pas terminée dans les cinq secondes ou si la requête dépasse les limites de la partition, la réponse comprend des en-têtes personnalisés qui contiennent un jeu de jetons de continuation. Les jetons de continuation peuvent être utilisés pour construire une demande suivante pour la page de données suivante. Pour plus d'informations sur les jetons de continuation, consultez Délai d'expiration de requête et pagination.

Pour les demandes de projection qui utilisent l'option de requête $select, la demande doit être faite à l'aide de la version du 18/08/2011 ou ultérieure. Le nombre maximal de propriétés retournées est égal à 255, et toutes les propriétés projetées sont incluses dans le corps de la réponse même si la propriété ne fait pas partie de l'entité retournée. Par exemple, si la demande inclut une propriété que l'entité projetée ne contient pas, la propriété manquante est marquée avec un attribut null. L'exemple de corps de réponse ci-dessus inclut la propriété Address, qui ne fait pas partie de l'entité projetée, donc la propriété est null : <d:Address m:null=”true” />

La durée totale allouée à la demande pour planifier et gérer la requête est de 30 secondes, y compris les cinq secondes pour l'exécution de la requête.

Notez que le côté droit d'une expression de requête doit être une constante ; vous ne pouvez pas référencer une propriété à droite de l'expression. Consultez Interrogation de tables et d'entités pour obtenir des informations détaillées sur la construction d'expressions de requête.

Une expression de requête ne peut pas contenir de valeurs null. Les caractères suivants doivent être encodés s'ils doivent être utilisés dans une chaîne de requête :

  • barre oblique (/)

  • point d'interrogation (?)

  • deux-points (:)

  • Symbole arobase (@)

  • Et commercial (&)

  • Signe égal (=)

  • Signe plus (+)

  • Virgule (,)

  • Signe dollar ($)

Une application qui peut authentifier et envoyer une demande HTTP GET peut interroger des entités dans une table.

Pour plus d'informations sur les opérations de requête prises en charge pour le service de Table via LINQ, consultez Opérateurs de requête pris en charge pour le service de Table etÉcriture de requêtes LINQ sur le service de Table.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2014 Microsoft