Управление версиями в веб-службе отчетов Office 365

Для обеспечения будущей совместимости с существующими клиентами, Веб-служба отчетов Office 365 , веб-служба принимает параметр URI rws-version или X-RWS-Version HTTP-заголовка. Служба ODATA также имеет заголовки совместимость версий, в приложении следует использовать. В настоящее время (февраль 2013) версию обновления допустим только для этой функции — 2013-V1. В этом разделе описывается работа со службой и версии службы данных ODATA.

Дата последнего изменения: 7 декабря 2015 г.

Область применения: Office 365

Веб-службы Office 365 отчетов версии

Службы, такие как Office 365 получать частые обновления, добавляющие функциональность и устранения проблем. Office 365 использует идентификаторы версий служб в форме YEAR-V#. YEAR является календарный год, в котором выпуска станет общедоступным для большинства подписчиков. # указывает номер года выпуска. По состоянию на март 2013 г основных обслуживаемых версии — 2013-V1. Предыдущая версия была 2012-V1; Однако Веб-служба отчетов Office 365 не обычно доступны в этой версии службы. Запросы на использование версии 2012-V1 возвратит сообщение об ошибке, содержащее <Message>The version specified in the request is unsupported.</Message>.

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

Запрос версии службы

Веб-служба отчетов предоставляет два способа запроса версии определенной службы. Приложения могут использовать заголовок X-RWS-Version в HTTP-запросе, или он может предоставлять параметр URI rws-version .

X-RWS-Version HTTP заголовка запроса выглядит следующим образом по сети: X-RWS-Version:2013-V1.

Параметр URI rws-version выглядит следующим образом, на практике: rws-version=2013-V1. В следующем примере запросы этой версии службы 2013-V1 использоваться для обработки отчета StaleMailbox.

https://reports.office365.com/ecp/reportingwebservice/reporting.svc/StaleMailbox?rws-version=2013-V1&
  $select=ActiveMailboxes,Date,InactiveMailboxes31To60Days,InactiveMailboxes61To90Days,InactiveMailboxes91To1460Days&
  $top=1&
  $format=Atom

Важно!

Не предоставляйте HTTP-заголовка и параметра URI в запросе отчета. Когда Веб-служба отчетов обнаруживает, даже если они предназначены для одной и той же версии службы, будет возвращено следующее сообщение об ошибке.

<?xml version="1.0" encoding="utf-8"?>
<ServiceFault xmlns="http://schemas.datacontract.org/2004/07/Microsoft.Exchange.Management.ReportingWebService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorCode />
  <Message>The API version is specified in both request URL and header.</Message>
</ServiceFault>

Чтобы решить, как указать версию обновления, рассмотрим архитектуру кода. Если для приложения требуются только к одной версии, с помощью заголовка HTTP-запроса. Если приложение использует разные версии для разных отчетов и создание HttpRequest обычно выполняется для всех отчетов независимо от версии обновления, используйте параметр URI. Независимо от выбранного метода, не используйте их вместе.

Заголовок X-RWS-версии, возвращаемых веб-службой

Все успешные HTTP-ответы и наиболее неудачных ответов, которые возвращаются в клиентском приложении включать заголовок X-RWS-Version . Заголовок, определить уровень версии службы, применяемое к результатам. Если приложение не указывает любой конкретной версии, Веб-служба отчетов возвращает самую последнюю версию обновления. Когда приложение указать версию, если эта версия является доступной, отчет возвращает версию запрошенную службу для подтверждения, что запрос приложения может обслуживаться в нужной версии.

Версии службы данных ODATA

Инфраструктура ODATA, на которой создано Веб-служба отчетов Office 365 также имеет версии, которые время от времени обновляются и скорее всего будет отображаться в Веб-служба отчетов в некоторой точке. Существуют два заголовка: DataServiceVersion , который задает предпочтительную версию ODATA и MaxDataServiceVersion , которое указывает версию, которая не должна превышать службы. Эти заголовки и обеспечить продолжение надежность систем, проверяемое на соответствие предыдущей версии службы. Дополнительные сведения содержатся в разделе Управление версиями протокола ODATA.

DataServiceVersion HTTP-заголовок

Заголовок DataServiceVersion указывает, что обработчик запросов ODATA и данные форматирования для использования указанного DataServiceVersion. По состоянию на февраль 2012 г. версия обновления равна 2.0. Заголовок DataServiceVersion возвращается с ответом отчета таким образом, приложение можно убедиться, что используется версия совместима.

MaxDataServiceVersion HTTP-заголовок

MaxDataServiceVersion указывает, что Веб-служба отчетов не будет использовать любой версии выше, чем предоставляется. Например если не хотите разрешить следующей основной версии (3.0) для использования является текущей версии 2.0, укажите заголовок с MaxDataServiveVersion:2.99.

Веб-служба отчетов Office 365 основной версии ODATA

Для обеспечения совместимости с клиентами ODATA, Веб-служба отчетов использует два DataServiceVersion значения в зависимости от того, что запрашивается:

  • Reporting.svc документ описания службы использует ODATA DataServiceVersion 1.0.

  • Все отчеты с помощью ODATA DataServiceVersion 2.0.

Пример

Следующий пример демонстрирует добавить заголовки, описанные в этом разделе для HttpWebRequest. Заголовки могут быть добавлены в любом порядке, но не должно содержать более одной копии каждого заголовка. Accept-Language HTTP header and the Reporting web service сведения о задании, язык и региональные параметры и язык для заголовка имена «см.»

  //
  // First, create the web request object to add the versioning information and other headers to.  
  HttpWebRequest request = 
    (HttpWebRequest)HttpWebRequest.Create("https://reports.office365.com/ecp/reportingwebservice/reporting.svc");
  request.Method = "GET";
  //
  // This header specifies the ODATA provider's minimum version. Because we use $select in later queries,
  // we need to have at least ODATA2. And since we don't (yet) support anything higher than 2.0, we'll give
  // that as a maximum also.
  request.Headers.Add("DataServiceVersion", "2.0");
  request.Headers.Add("MaxDataServiceVersion", "2.0");
  //
  // Add the RWS language header.
  request.Headers.Add("Accept-Language","EN-US");
  //
  // Add the RWS service version section header.
  request.Headers.Add("X-RWS-Version","2013-V1");
  //
  // For authentication reasons, avoid redirecting the HTTPS request.
  request.AllowAutoRedirect = false;
  //
  // The "simple" way to get the Basic-authentication credentials: 
  request.Credentials = new NetworkCredential(userNameEntered, passwordEntered);
  //
  // Make the Web call here. This is normally done using asynchronous methods so that the application
  // interface is not blocked waiting for the service to respond.
  HttpWebResponse response = (HttpWebResponse)request.GetResponse();