Query Entities
La operación Query Entities
consulta las entidades de una tabla e incluye las opciones $filter
y $select
.
Solicitud
Para las solicitudes que usan la opción de consulta, debe usar la $select
versión 2011-08-18 o posterior. Además, los encabezados DataServiceVersion
y MaxDataServiceVersion
deben establecerse en 2.0
.
Para usar la proyección, debe realizar la solicitud con la versión 2013-08-15 o posterior. Los DataServiceVersion
encabezados y MaxDataServiceVersion
deben establecerse en 3.0
. Para obtener más información, consulte Establecimiento de los encabezados de versión del servicio de datos de OData.
Puede construir la solicitud de la Query Entities
siguiente manera. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento y reemplace 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 del conjunto de entidades que se va a consultar puede adoptar varias formas en el URI de solicitud. Para obtener más información, vea Consulta de tablas y entidades.
URI del servicio de almacenamiento emulado
Cuando realice una solicitud en el servicio de almacenamiento emulado, especifique el nombre de host del emulador y el puerto de Table Service como 127.0.0.1:10002
. Siga esa información con el nombre de la cuenta de almacenamiento emulada.
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 |
Table service en el emulador de almacenamiento difiere de Azure Table Storage de varias maneras. Para más información, consulte Diferencias entre el emulador de almacenamiento y los servicios de Azure Storage.
Parámetros del identificador URI
La Query Entities
operación admite las opciones de consulta que define la especificación del protocolo OData .
Encabezados de solicitud
En la tabla siguiente se describen los encabezados de solicitud obligatorios y opcionales:
Encabezado de solicitud | Descripción |
---|---|
Authorization |
Necesario. Especifica el esquema de autorización, el nombre de cuenta y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage. |
Date o x-ms-date |
Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage. |
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 Versiones de los servicios de Azure Storage. |
Accept |
Opcional. Especifica el tipo de contenido aceptado de la carga de respuesta. Los valores posibles son: - application/atom+xml (versiones anteriores solo a 2015-12-11)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Para más información, consulte Formato de carga para las operaciones de Table Storage. |
x-ms-client-request-id |
Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. |
Cuerpo de la solicitud
Ninguno.
Solicitud de ejemplo
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: 2015-12-11
x-ms-date: Mon, 27 Jun 2016 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/json;odata=nometadata
Accept-Charset: UTF-8
DataServiceVersion: 3.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Response
La respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y un cuerpo de respuesta.
status code
Una operación correcta devuelve el código de estado 200 Correcto.
Para obtener información sobre los códigos de estado, consulte Códigos de error y estado yCódigos de error de Table Storage.
Encabezados de respuesta
La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP estándar adicionales. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.
Encabezado de respuesta | Descripción |
---|---|
x-ms-continuation-NextPartitionKey x-ms-continuation-NextRowKey |
Indica que: - El número de entidades que se van a devolver supera los 1000. - Se supera el intervalo de tiempo de espera del servidor. - Se alcanza un límite de servidor, si la consulta devuelve datos que se distribuyen entre varios servidores. Para obtener más información sobre el uso de los tokens de continuación, consulte Tiempo de espera y paginación de consultas. |
x-ms-request-id |
Identifica de forma única la solicitud que se realizó. Puede usarlo para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API. |
x-ms-version |
Indica la versión de Table Storage que se usó 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 que indica la hora en la que el servicio envió 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 (versiones anteriores solo a 2015-12-11)- application/json;odata=nometadata - application/json;odata=minimalmetadata - application/json;odata=fullmetadata Para obtener más información sobre los tipos de contenido válidos, consulte Formato de carga para las operaciones de Table Storage. |
x-ms-client-request-id |
Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud y el valor es como máximo de 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, este encabezado no estará presente en la respuesta. |
Respuesta de muestra
Response Status:
HTTP/1.1 200 OK
Response Headers:
Content-Type: application/json
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 27 Jun 2016 15:25:14 GMT
x-ms-version: 2015-12-11
Connection: close
Response body
La Query Entities
operación devuelve la lista de entidades de una tabla como un conjunto de entidades de OData. La lista de entidades está en un formato JSON o en una fuente Atom, en función del Accept
encabezado de la solicitud.
Nota
Se recomienda JSON como formato de carga. Es el único formato admitido para la versión 2015-12-11 y posteriores.
JSON (versión 2013-08-15 y posteriores)
Este es un URI de solicitud de ejemplo para una Query Entities
operación en una tabla de clientes:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Esta es la carga de respuesta en JSON sin metadatos:
{
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Esta es la carga de respuesta en JSON con 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"
}
]
}
Esta es la carga de respuesta en JSON con 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"
}
]
}
Fuente Atom (versiones anteriores al 2015-12-11)
Este es un URI de solicitud de ejemplo para una Query Entities
operación en una tabla de clientes:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Esta es una respuesta atom de ejemplo para la Query Entities
operación:
<?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/"0x5B168C7B6E589D2"">
<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>
Authorization
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.
Comentarios
Una consulta en Table Storage puede devolver un máximo de 1000 entidades a la vez y puede ejecutarse durante un máximo de cinco segundos. La respuesta incluye encabezados personalizados que contienen un conjunto de tokens de continuación en cualquiera de los casos siguientes:
- El conjunto de resultados contiene más de 1000 entidades.
- La consulta no finalizó en cinco segundos.
- La consulta supera el límite de la partición.
Puede usar los tokens de continuación para construir una solicitud posterior para la página siguiente de datos. Para obtener más información sobre los tokens de continuación, consulte Tiempo de espera de consulta y paginación.
Nota
Cuando realice solicitudes posteriores que incluyan tokens de continuación, asegúrese de pasar el URI original en la solicitud. Por ejemplo, si ha especificado una $filter
opción de consulta , $select
o $top
como parte de la solicitud original, incluya esa opción en las solicitudes posteriores. De lo contrario, las solicitudes posteriores podrían devolver resultados inesperados.
La $top
opción de consulta en este caso especifica el número máximo de resultados por página. No especifica el número máximo de resultados en todo el conjunto de respuestas.
Para obtener más información, vea Consulta de tablas y entidades.
Para las solicitudes de proyección que usan la $select
opción de consulta, la versión debe ser 2011-08-18 o posterior. El número máximo de propiedades devueltas es 255. El cuerpo de la respuesta incluye todas las propiedades proyectadas, incluso si las propiedades no forman 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 la respuesta de ejemplo anterior incluye la Address
propiedad , que no forma parte de la entidad proyectada. Por lo tanto, el valor de la propiedad es NULL: <d:Address m:null="true" />
.
El tiempo total asignado a la solicitud de programación y procesamiento de la consulta es de 30 segundos. Ese total incluye los cinco segundos para la ejecución de consultas.
Tenga en cuenta que 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. Para obtener más información sobre cómo construir expresiones de consulta, consulte Tablas y entidades de consulta.
Una expresión de consulta no puede contener null
valores. Los caracteres siguientes deben codificarse si los usa en una cadena de consulta:
Barra diagonal (/)
Signo de interrogación (?)
Dos puntos (:)
Arroba (@)
Símbolo de y comercial (&)
Signo igual (=)
Signo más (+)
Coma (,)
Signo de dólar ($)
Cualquier aplicación que pueda autorizar y enviar una solicitud HTTP GET
puede consultar entidades en una tabla.
Para obtener más información sobre las operaciones de consulta admitidas en Table Storage a través de LINQ, consulte Operadores de consulta compatibles con Table Storage y Escritura de consultas LINQ en Table Storage.
Consulte también
Códigos de error de Table Storage
Autorización de solicitudes a Azure Storage
Estado y códigos de error
Direccionamiento de los recursos de Table Storage
Consulta de tablas y entidades
Establecimiento de los encabezados de versión del servicio de datos de OData
Insert Entity
Update Entity
Delete Entity