VENTAS: 1-800-867-1389

Query Entities

Actualizado: febrero de 2014

La operación Query Entities consulta las entidades de una tabla e incluye las opciones $filter y $select.

En el caso de solicitudes que usan la opción de consulta $select, la solicitud se debe crear con la versión 2011-08-18 o posterior. Además, los encabezados DataServiceVersion y MaxDataServiceVersion deben establecerse en 2.0. La solicitud Query Entities se puede construir como sigue. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento y mytable por el nombre de la tabla:

 

Método URI de solicitud Versión de 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

La dirección de la entidad que va a consultar puede tener varios formatos en el URI de la solicitud. Para obtener más información, vea Consultar tablas y entidades.

Cuando realice una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto del servicio Tabla como 127.0.0.1:10002, seguido del nombre de la cuenta de almacenamiento emulado:

 

Método URI de solicitud Versión de 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

El servicio Tabla del emulador de almacenamiento presenta algunas diferencias respecto al servicio Tabla de Windows® Azure™. Para obtener más información, vea About Development Storage y Diferencias entre el emulador de almacenamiento y los servicios de almacenamiento de Azure.

La operación Query Entities admite las opciones de consulta definidas en la Especificación de protocolo OData. Para obtener más información, vea Convenciones de URI de OData.

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

 

Encabezado de solicitud Descripción

Authorization

Requerido. Especifica el esquema de autenticación, el nombre de la cuenta y la firma. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

Date O bien x-ms-date

Requerido. Especifica la hora universal coordinada (UTC) para la solicitud. Para obtener más información, vea Autenticación para los servicios de almacenamiento de Azure.

x-ms-version

Opcional. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Control de versiones de los servicios de almacenamiento de Azure.

Accept

Opcional. Especifica el tipo de contenido aceptado de la carga de respuesta. Los valores posibles son:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Para obtener más información, vea Formato de carga para las operaciones del servicio Tabla.

x-ms-client-request-id

Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 KB que se graba en los registros de análisis cuando el registro de análisis de almacenamiento está habilitado. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes recibidas por el servidor. Para obtener más información, vea Acerca del registro del análisis de almacenamiento y Registro de Windows Azure: usar registros para realizar el seguimiento de las solicitudes de almacenamiento.

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 respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y un cuerpo de respuesta.

Una operación correcta devuelve el código de estado 200 (Correcto).

Para obtener información acerca de los códigos de estado, vea Códigos de estado y de error y Códigos de error del servicio Tabla.

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar cumplen la especificación del protocolo HTTP/1.1.

 

Encabezado de respuesta Descripción

x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey

Si el número de entidades que se van a devolver es superior a 1.000, si se supera el intervalo de tiempo de espera del servidor o si la consulta cruza el límite de la partición, el encabezado de respuesta incluye los encabezados de continuación x-ms-continuation-NextPartitionKey y x-ms-continuation-NextRowKey.

Para obtener más información sobre cómo utilizar los tokens de continuación, vea Tiempo de espera y paginación de las consultas.

x-ms-request-id

Este encabezado identifica de forma única la solicitud que se realizó y se puede utilizar para solucionar problemas relacionados con esta. Para obtener más información, vea Solucionar problemas relacionados con las operaciones de la API.

x-ms-version

Indica la versión del servicio Tabla utilizada para ejecutar la solicitud. Este encabezado se devuelve para las solicitudes realizadas en la versión 2009-09-19 y versiones posteriores.

Date

Valor de fecha y hora UTC generado por el servicio que indica la hora a la que se inició la respuesta.

Content-Type

Indica el tipo de contenido de la carga. El valor de este encabezado depende del valor del encabezado de solicitud Accept. Los valores posibles son:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Para obtener más información acerca de los tipos de contenido válidos, vea Formato de carga para las operaciones del servicio Tabla.

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

La operación Query Entities devuelve la lista de entidades en una tabla como conjunto de entidades OData, en una fuente JSON o Atom, dependiendo del encabezado Accept de la solicitud.

Este es un URI de solicitud de ejemplo para una operación Query Entities en una tabla denominada Customers.

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

Y este es el cuerpo de respuesta para una fuente 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>

La fuente de respuesta JSON es la siguiente:

Sin metadatos:

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

Metadatos mínimos:

{
   "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"
      }
   ]
}

Metadatos completos:

{
   "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"
      }
   ]
}

Esta operación la puede realizar el propietario de la cuenta y cualquiera que tenga una firma de acceso compartido con permiso para realizar esta operación.

Una consulta al servicio Tabla puede devolver un máximo de 1.000 entidades al mismo tiempo, y se puede ejecutar durante cinco segundos como máximo. Si el conjunto de resultados contiene más de 1.000 entidades, si la consulta no se completa en un plazo de cinco segundos o si la consulta cruza el límite de la partición, la respuesta incluirá encabezados personalizados que contendrán un conjunto de tokens de continuación. Los tokens de continuación se pueden utilizar para crear una solicitud posterior para obtener la página de datos siguiente. Para obtener más información acerca de los tokens de continuación, vea Tiempo de espera y paginación de las consultas.

Para las solicitudes de proyección que usan la opción de consulta $select, la solicitud se debe hacer con la versión 2011-08-18 o una más reciente. El número máximo de propiedades devueltas es de 255 y todas las propiedades proyectadas se incluyen en el cuerpo de respuesta aunque la propiedad no forme parte de la entidad devuelta. Por ejemplo, si la solicitud incluye una propiedad que la entidad proyectada no contiene, la propiedad que falta se marca con un atributo NULL. El cuerpo de respuesta del ejemplo anterior incluye la propiedad Address, que no forma parte de la entidad proyectada, por lo que la propiedad es NULL: <d:Address m:null=”true” />

El tiempo total asignado a la solicitud para programar y procesar la consulta es de 30 segundos, incluidos cinco segundos para la ejecución de la consulta.

Tenga en cuenta el lado derecho de una expresión de consulta debe ser una constante; no se puede hacer referencia a una propiedad en el lado derecho de la expresión. Vea Consultar tablas y entidades para obtener más información sobre la creación de expresiones de consulta.

Una expresión de consulta no puede contener valores null. Los siguientes caracteres deben estar codificados si se van a utilizar en una cadena de consulta:

  • Barra diagonal (/)

  • Signo de interrogación (?)

  • Dos puntos (:)

  • Arroba (@)

  • Y comercial (&)

  • Signo igual (=)

  • Signo más (+)

  • Coma (,)

  • Signo de dólar ($)

Cualquier aplicación que pueda autenticar y enviar solicitudes HTTP GET puede consultar las entidades de una tabla.

Para obtener más información acerca de las operaciones de consulta admitidas en el servicio Tabla mediante LINQ, vea Operadores de consulta admitidos para el servicio Tabla y Escribir consultas LINQ con el servicio Tabla.

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft