Поделиться через


Парадигма программного доступа для коммерческой платформы

На этой схеме показан шаблон вызова API, используемый для создания нового шаблона отчета, планирования пользовательского отчета и получения данных об ошибках.

Иллюстрирует шаблон вызова API, используемый для создания нового шаблона отчета, планирования настраиваемого отчета и получения данных о сбоях.Рис. 1. Высокоуровневый поток шаблона вызова API

Этот список содержит дополнительные сведения о рис. 1.

  1. Клиентское приложение может определить схему или шаблон пользовательского отчета, вызвав API создания запроса отчета. Кроме того, можно использовать шаблон отчета (QueryId) из списка системных запросов.
  2. При успешном выполнении API создания шаблона отчета возвращает QueryId.
  3. Затем клиентское приложение вызывает API создания отчетов, используя QueryID, а также дату начала отчета, интервал повтора, периодичность и URI обратного вызова (необязательно).
  4. При успешном выполнении API создания отчетов возвращает ReportID.
  5. Клиентское приложение получит уведомление по URI обратного вызова, как только данные отчета будут готовы к скачиванию.
  6. Затем клиентское приложение использует API получения сведений о выполнении отчетов для запроса состояния отчета с указанием Report ID и диапазоном дат.
  7. При успешном выполнении возвращается ссылка на скачивание отчета, после чего приложение может инициировать скачивание данных.

Спецификация языка запросов отчетов

Мы предоставляем вам системные запросы, которые можно использовать для создания отчетов, однако вы можете и сами создавать запросы с учетом потребностей организации. Дополнительные сведения о пользовательских запросах см. в разделе Спецификация пользовательских запросов.

API создания запросов отчетов

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

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

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

Синтаксис запроса

Способ URI запроса
POST https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries

Заголовок запроса

Верхний колонтитул Тип Описание
Авторизация строка Обязательный. Маркер доступа Microsoft Entra. Формат — Bearer <token>.
Тип контента string application/JSON

Параметр пути

нет

Параметр запроса

нет

Пример полезных данных запроса

{
    "Name": "ISVUsageQuery",
    "Description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
    "Query": "SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH"
}

Словарь терминов

В этой таблице приводятся основные определения элементов в полезных данных запроса.

Параметр Обязательное поле Описание Допустимые значения
Name Да Понятное имя запроса строка
Description Нет Описание созданного запроса строка
Query Да Строка запроса на основе бизнес-потребности строка

Примечание.

Примеры пользовательских запросов см . в примерах запросов.

Пример ответа

Полезные данные ответа имеют следующий формат:

Коды отклика: 200, 400, 401, 403, 500

Пример полезных данных ответа:

{
  "value": [
        {
            "queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
            "name": " ISVUsageQuery",
            "description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
            "query": " SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH",
            "type": "userDefined",
            "user": "142344300",
            "createdTime": "2024-01-06T05:38:34Z"
        }
    ],
    "totalCount": 1,
    "message": "Query created successfully",
    "statusCode": 200
}

Словарь терминов

В этой таблице приводятся основные определения элементов в ответе.

Параметр Описание
QueryId Универсальный уникальный идентификатор (UUID) созданного запроса
Name Имя, предоставленное в полезных данных запроса во время создания запроса
Description Описание, предоставленное в полезных данных запроса во время создания запроса
Query Настраиваемый запрос отчета, предоставленный в полезных данных запроса во время создания запроса
Type userDefined Установка для созданных вручную запросов
User Идентификатор пользователя, используемый для создания запроса
CreatedTime Время UTC при создании запроса. Формат: гггг-ММ-ддTHH:мм:ssZ
TotalCount Число записей в массиве значений
StatusCode Код результата
Возможные значения — 200, 400, 401, 403, 500
message Сообщение о состоянии из выполнения API

API создания отчетов

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

Синтаксис запроса

Способ URI запроса
POST https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport

Заголовок запроса

Верхний колонтитул Тип Описание
Авторизация строка Обязательный. Маркер доступа Microsoft Entra. Формат — Bearer <token>.
Тип содержимого строка application/JSON

Параметр пути

нет

Параметр запроса

нет

Пример полезных данных запроса

{
  "ReportName": "ISVUsageReport",
  "Description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
  "QueryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c ",
  "StartTime": "2021-01-06T19:00:00Z ",
  "executeNow": false,
  "RecurrenceInterval": 48,
  "RecurrenceCount": 20,
  "Format": "csv",
  "CallbackUrl": "https://<SampleCallbackUrl>"
  "callbackMethod": "GET",
}

Словарь терминов

В этой таблице приводятся основные определения элементов в полезных данных запроса.

Параметр Обязательное поле Описание Допустимые значения
ReportName Да Понятное имя, назначенное отчету Строка
Description Нет Описание созданного отчета Строка
QueryId Да Идентификатор запроса, который необходимо использовать для создания отчетов Строка
StartTime Да Метка времени в формате UTC, после которой начнется создание отчета. Требуемый формат: гггг-мм-ддTчч:мм:ссZ Строка
ExecuteNow Нет Этот параметр следует использовать для создания отчета, который выполняется только один раз. StartTime, , RecurrenceIntervalRecurrenceCountи EndTime игнорируются, если задано значение .true Логический
QueryStartTime No Дополнительно указывает время начала для запроса на извлечение данных. Этот параметр применяется только к разовому отчету о выполнении, для которого параметр ExecuteNow имеет значение true. Требуемый формат: гггг-мм-ддTчч:мм:ссZ Отметка времени в виде строки
QueryEndTime No Дополнительно указывает время окончания для запроса на извлечение данных. Этот параметр применяется только к разовому отчету о выполнении, для которого параметр ExecuteNow имеет значение true. Требуемый формат: гггг-мм-ддTчч:мм:ссZ Отметка времени в виде строки
RecurrenceInterval Да Периодичность создания отчета в часах. Минимальное значение равно 1, а максимальное — 17520 Целое число
RecurrenceCount Да Число создаваемых отчетов. Ограничение зависит от интервала повторения Целое число
Format No Формат экспортируемого файла. Формат по умолчанию — CSV CSV/TSV
CallbackUrl No Общедоступный URL-адрес, который можно при необходимости настроить в качестве назначения обратного вызова. Строка
CallbackMethod Нет Метод Get/Post, который можно настроить с ПОМОЩЬЮ URL-адреса обратного вызова GET/POST
EndTime Да Метка времени в формате UTC, в которой будет завершено создание отчета. Требуемый формат: гггг-мм-ддTчч:мм:ссZ Строка

Примечание.

При создании отчета EndTime или сочетании RecurrenceInterval и RecurrenceCount является обязательным.

Пример ответа

Полезные данные ответа имеют следующий формат:

Код ответа: 200, 400, 401, 403, 404, 500

Полезные данные ответа:

{
  "Value": [
    {
            "reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
            "reportName": "ISVUsageReport",
            "description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
            "queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
            "query": "SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH",
            "user": "142344300",
            "createdTime": "2024-01-06T05:46:00Z",
            "modifiedTime": null,
            "startTime": "2024-01-06T19:00:00Z",
            "reportStatus": "Active",
            "recurrenceInterval": 48,
            "recurrenceCount": 20,
            "callbackUrl": "https://<SampleCallbackUrl>",
            "callbackMethod": "GET",
            "format": "csv"
    }
  ],
  "TotalCount": 1,
  "Message": "Report created successfully",
  "StatusCode": 200
}

Словарь терминов

В этой таблице приводятся основные определения элементов в ответе.

Параметр Описание
ReportId Универсальный уникальный идентификатор (UUID) созданного отчета
ReportName Имя, предоставленное в полезных данных запроса во время создания отчета
Description Описание, предоставленное в полезных данных запроса во время создания отчета
QueryId Идентификатор запроса, предоставленный в полезных данных запроса во время создания отчета
Query Текст запроса, который будет выполнен для этого отчета
User Идентификатор пользователя, используемый для создания отчета
CreatedTime Время создания отчета в формате UTC: гггг-мм-ddTчч: мм: ссZ
ModifiedTime Время последнего изменения отчета в формате UTC: гггг-мм-ddTчч: мм: ссZ
ExecuteNow Параметр ExecuteNow, предоставленный в полезных данных запроса во время создания отчета
queryStartTime Время начала запроса, предоставленное в полезных данных запроса во время создания отчета. Это применимо только в том случае, если ExecuteNow задано значение True
queryEndTime Время окончания запроса, предоставленное в полезных данных запроса во время создания отчета. Это применимо только в том случае, если ExecuteNow задано значение True
StartTime Время начала, предоставленное в полезных данных запроса во время создания отчета
ReportStatus Состояние выполнения отчета. Возможные значения: Paused (Приостановлено), Active (Активно) и Inactive (Неактивно).
RecurrenceInterval Интервал повторения, предоставленный в полезных данных запроса во время создания отчета
RecurrenceCount Оставшееся число повторений для отчета
CallbackUrl URL-адрес обратного вызова, предоставленный в полезных данных запроса во время создания отчета
CallbackMethod Метод обратного вызова, предоставленный в полезных данных запроса во время создания отчета
Format Формат файлов отчета, предоставленных в полезных данных запроса во время создания отчета
EndTime Время окончания, предоставленное в полезных данных запроса во время создания отчета. Это применимо только в том случае, если ExecuteNow задано значение True
TotalRecurrenceCount RecurrenceCount в полезных данных запроса во время создания отчета
nextExecutionStartTime Метка времени UTC при запуске следующего отчета
TotalCount Число записей в массиве значений
StatusCode Код результата. Возможные значения — 200, 400, 401, 403, 500
message Сообщение о состоянии из выполнения API

Получение сведений об API выполнения отчетов

Этот метод можно использовать для запроса состояния выполнения отчета с помощью метода ReportId, полученного из API создания отчетов. Если отчет готов к скачиванию, метод возвращает ссылку для скачивания отчета. В противном случае метод возвращает состояние. Этот API также можно использовать для получения всех выполнений определенного отчета.

Внимание

В этом API параметры executionStatus=Completed и getLatestExecution=true имеют значения по умолчанию. В связи с этим вызов API до первого успешного выполнения отчета возвращает 404. Для получения ожидающих выполнений можно использовать параметр executionStatus=Pending.

Синтаксис запроса

Способ URI запроса
Получить https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/{reportId}?executionId={executionId}&executionStatus={executionStatus}&getLatestExecution={getLatestExecution}

Заголовок запроса

Верхний колонтитул Тип Описание
Авторизация строка Обязательный. Маркер доступа Microsoft Entra. Формат — Bearer <token>.
Content type строка application/json

Параметр пути

нет

Параметр запроса

Наименование параметра Обязательное поле Type Описание
reportId Да строка Фильтр для получения сведений о выполнении только отчетов с параметром reportId, указанным в этом аргументе.
executionId Нет строка Фильтр для получения сведений только об отчетах с параметром executionId, указанным в этом аргументе. Несколько executionIds можно указать, разделив их точкой с запятой ";".
executionStatus No string/enum Фильтр для получения сведений только об отчетах с параметром executionStatus, указанным в этом аргументе.
Допустимые значения: Pending, Running, Paused и Completed
Значение по умолчанию — Completed.
getLatestExecution No boolean API возвратит сведения о последнем выполнении отчета.
По умолчанию этот параметр имеет значение true. Если вы решите передать значение этого параметра в виде false, API возвратит экземпляры выполнения за последние 90 дней.

Полезные данные запроса

нет

Пример ответа

Полезные данные ответа имеют следующий формат:

Коды отклика: 200, 400, 401, 403, 404, 500

Пример полезных данных ответа:

{
    "value": [
        {
            "executionId": "a0bd78ad-1a05-40fa-8847-8968b718d00f",
            "reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
            "recurrenceInterval": 4,
            "recurrenceCount": 10,
            "callbackUrl": null,
            "format": "csv",
            "executionStatus": "Completed",
            "reportAccessSecureLink": "https://<path to report for download>",
            "reportExpiryTime": null,
            "reportGeneratedTime": "2021-01-13T14:40:46Z"
        }
    ],
    "totalCount": 1,
    "message": null,
    "statusCode": 200
}

После выполнения отчета отобразится состояние выполнения Completed. Вы можете скачать отчет по URL-адресу, указанному в параметре reportAccessSecureLink.

Словарь терминов

Основные определения элементов в ответе.

Параметр Описание
ExecutionId Универсальный уникальный идентификатор (UUID) экземпляра выполнения
ReportId Идентификатор отчета, связанный с экземпляром выполнения
RecurrenceInterval Интервал повторений, предоставленный при создании отчета.
RecurrenceCount Число повторений, указанное при создании отчета
CallbackUrl URL-адрес обратного вызова, связанный с экземпляром выполнения
CallbackMethod Метод обратного вызова, предоставленный в полезных данных запроса во время создания отчета
Format Формат созданного файла по завершении выполнения
ExecutionStatus Состояние экземпляра выполнения отчета.
Допустимые значения: Pending, Running, Paused и Completed
ReportLocation Расположение, где скачан отчет.
ReportAccessSecureLink Ссылка для безопасного доступа к отчету
ReportExpiryTime Время, при наступлении которого истекает срок действия ссылки на отчет, в формате UTC: гггг-мм-ddTчч: мм: ссZ
ReportGeneratedTime Время создания отчета в формате UTC: гггг-мм-ddTHH: мм: ссZ
EndTime Время окончания, предоставленное в полезных данных запроса во время создания отчета. Это применимо только в том случае, если ExecuteNow задано значение True
TotalRecurrenceCount RecurrenceCount в полезных данных запроса во время создания отчета
nextExecutionStartTime Метка времени UTC при запуске следующего отчета
TotalCount Число наборов данных в массиве Value.
StatusCode Код результата
Возможные значения: 200, 400, 401, 403, 404 и 500
message Сообщение о состоянии из выполнения API

Вы можете поработать с API-интерфейсами с помощью URL-адреса API Swagger.