Экспорт (0) Печать
Развернуть все

Сущности запроса

Обновлено: Февраль 2014 г.

Операция Query Entities запрашивает сущности в таблице и включает параметры $filter и $select.

Запросы, в которых указан параметр запроса $select, необходимо выполнять с помощью версии 2011-08-18 или более поздней версии. Кроме того, для заголовков DataServiceVersion и MaxDataServiceVersion необходимо установить значение 2.0. Запрос Query Entities можно составить следующим образом. Рекомендуется использовать протокол HTTPS. Замените myaccount именем учетной записи хранения, а mytable — именем таблицы.

 

Метод URI запроса Версия 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

URI-запрос для запрашиваемого адреса набора сущностей может быть представлен по-разному. Дополнительные сведения см. в Запросы к таблицам и сущностям.

При построении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт службы таблиц в виде 127.0.0.1:10002, затем укажите имя эмулированной учетной записи хранилища.

 

Метод URI запроса Версия 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

Служба таблиц в эмуляторе хранилища отличается от службы таблиц Windows® Azure™ в нескольких аспектах. Дополнительные сведения см. в разделах About Development Storage и Различия между эмулятором хранилища и службами хранилища Azure.

Операция Query Entities поддерживает параметры запроса, определенные в спецификации протокола OData. Дополнительные сведения см. в соглашениях об обозначении в URI OData.

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

 

Заголовок запроса Описание

Authorization

Обязательно. Указывает схему проверки подлинности, имя учетной записи и подпись. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

Date или x-ms-date

Обязательно. Задает время в формате UTC для запроса. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

x-ms-version

Необязательно. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в Управление версиями для служб хранилища Azure.

Accept

Необязательно. Указывает приемлемый тип содержимого полезных данных ответа. Возможные значения:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Дополнительные сведения см. в Формат полезных данных для операций службы таблиц.

x-ms-client-request-id

Необязательно. Предоставляет сформированное клиентом непрозрачное значение с ограничением в 1 КБ, которое записывается в журналы аналитики, когда включено ведение журналов аналитики хранилища. Этот заголовок настоятельно рекомендуется использовать для соотнесения действий, выполняемых на стороне клиента, с запросами, получаемыми сервером. Дополнительные сведения см. в разделах Сведения о ведении журнала службы аналитики хранилища и Ведение журналов в Windows Azure: использование журналов для отслеживания запросов к хранилищу.

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

Ответ включает код состояния HTTP, набор заголовков ответа и текст ответа.

Успешная операция возвращает код состояния 200 (ОК).

Дополнительные сведения о кодах состояния см. в разделах Коды состояний и ошибок и Коды ошибок для службы таблиц.

Ответ для этой операции включает следующие заголовки. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют Спецификации протокола HTTP/1.1.

 

Заголовок ответа Описание

x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey

Если количество возвращаемых сущностей превышает 1000, если интервал времени ожидания сервера превышен или запрос пересекает границу секции, то заголовок ответа включает заголовки продолжения x-ms-continuation-NextPartitionKey и x-ms-continuation-NextRowKey.

Дополнительные сведения по использованию токенов продолжения см. в разделе Время ожидания запроса и разбиение на страницы.

x-ms-request-id

Этот заголовок однозначно определяет выполненный запрос, его также можно использовать для устранения связанных с запросом неполадок. Дополнительные сведения см. в Устранение неполадок при API-операциях.

x-ms-version

Указывает версию службы таблиц, используемую для выполнения запроса. Этот заголовок возвращается для запросов к версии 2009-09-19 и более поздним версиям.

Date

Значение даты и времени в формате UTC, сформированное службой и указывающее время, когда был инициирован ответ.

Content-Type

Указывает тип содержимого полезных данных. Значение этого заголовка зависит от значения заголовка запроса Accept. Возможные значения:

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

Дополнительные сведения о допустимых типах содержимого см. в разделе Формат полезных данных для операций службы таблиц.

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

Операция Query Entities возвращает список сущностей в таблице в виде набора сущностей OData в формате веб-канала JSON или Atom в зависимости от заголовка запроса Accept.

Вот пример URI запроса для операции Query Entities в таблице Customers.

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

А далее приведен текст ответа для веб-канала 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>

Ответ в формате JSON выглядит так:

Без метаданных:

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

Минимальные метаданные:

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

Полные метаданные:

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

Эта операция может выполняться владельцем учетной записи, а также любым пользователем с подписью общего доступа, у которой имеется разрешение на выполнение данной операции.

Запрос к службе таблиц может возвратить максимум 1000 сущностей одновременно и может выполняться не более 5 секунд. Если результирующий набор содержит более 1000 сущностей, если запрос не завершен в пределах 5 секунд или запрос пересекает границу секции, то ответ включает пользовательские заголовки, содержащие набор токенов продолжения. Токены продолжения могут использоваться для создания последующего запроса для следующей страницы данных. Дополнительные сведения о токенах продолжения см. в разделе Время ожидания запроса и разбиение на страницы.

Для запросов проекций с помощью параметра $select запрос необходимо делать в версии 2011-08-18 или более новой версии. Максимальное число возвращаемых свойств — 255, и все проецируемые свойства будут включены в текст ответа, даже если свойство не является частью возвращаемой сущности. Например, если запрос содержит свойство, которого проецируемая сущность не содержит, отсутствующее свойство помечается как атрибут со значением NULL. Пример текста ответа выше включает свойство Address, которое не является частью проецируемой сущности, поэтому равно NULL. <d:Address m:null=”true” />

Общее время, отводимое запросу на планирование и обработку запроса, составляет 30 секунд, включая 5 секунд для выполнения запроса.

Обратите внимание, что правая часть выражения запроса должна быть константой; нельзя ссылаться на свойство в правой части выражения. См. подробные сведения о построении выражений запроса в разделе Запросы к таблицам и сущностям.

Выражение запроса не может содержать значений null. Следующие символы необходимо кодировать при их использовании в строке запроса.

  • Косая черта (/)

  • Вопросительный знак (?)

  • Двоеточие (:)

  • Символ «At» (@)

  • Амперсанд (&)

  • Знак равенства (=)

  • Знак «плюс» (+)

  • Запятая (,)

  • Знак доллара ($)

Любое приложение, которое может выполнять проверку подлинности и отправлять HTTP-запрос GET, может запрашивать сущности в таблице.

Дополнительные сведения о поддерживаемых операциях запросов к службе таблиц с использованием LINQ см. в разделах Операторы запросов, поддерживаемые службой таблиц и Написание запросов LINQ в службе таблиц.

Показ:
© 2014 Microsoft