Парадигма программного доступа для коммерческой платформы
На этой схеме показан шаблон вызова API, используемый для создания нового шаблона отчета, планирования пользовательского отчета и получения данных о сбоях.
рис. 1. Высокий уровень потока шаблона вызова API
Этот список содержит дополнительные сведения о рис. 1.
- Клиентское приложение может определить настраиваемую схему или шаблон отчета, вызвав API создания запросов отчетов. В качестве альтернативы вы можете использовать шаблон отчета (
QueryId
) из списка системных запросов. - При успешном выполнении API для создания шаблона отчета возвращает
QueryId
. - Затем клиентское приложение вызывает API создания отчетов с помощью
QueryID
вместе с датой начала отчета, интервалом повторения, повторением и необязательным URI обратного вызова. - При успешном выполнении API создания отчетов возвращает
ReportID
. - Клиентское приложение получает уведомление по URI обратного вызова, как только данные отчета готовы к загрузке.
- Затем клиентское приложение использует API выполнения отчетов для запроса состояния отчета с помощью диапазона
Report ID
и даты. - При успешном выполнении возвращается ссылка на скачивание отчета, и приложение может инициировать скачивание данных.
Спецификация языка запросов отчета
Хотя мы предоставляем системные запросы, которые можно использовать для создания отчетов, вы также можете создавать собственные запросы на основе ваших бизнес-потребностей. Дополнительные сведения о пользовательских запросах см. в спецификации пользовательских запросов.
Создание API запросов отчета
Этот API помогает создавать пользовательские запросы, определяющие набор данных, из которого необходимо экспортировать столбцы и метрики. API обеспечивает гибкость создания нового шаблона отчетов на основе бизнес-потребностей.
Вы также можете использовать системные запросы, которые мы предоставляем. Если пользовательские шаблоны отчетов не требуются, можно вызывать API создания отчетов напрямую с помощью queryIds системных запросов.
В следующем примере показано, как создать пользовательский запрос, чтобы получить нормализированное использование и предполагаемые финансовые расходы за платные SKU из набора данных ISVUsage за последний месяц.
синтаксис запроса
Метод | URI запроса |
---|---|
ПОСТ | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries |
Заголовок запроса
Заголовок | Тип | Описание |
---|---|---|
Авторизация | струна | Обязательно. Токен доступа Microsoft Entra. Формат Bearer <token> . |
Тип контента | string |
application/JSON |
параметр path
Никакой
параметр запроса
Никакой
пример полезных данных запроса
{
"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 запроса |
---|---|
ПОСТ | 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, с которой начнется создание отчета. Формат должен быть yyyy-MM-ddTHH:mm:ssZ | Струна |
ExecuteNow |
Нет | Этот параметр следует использовать для создания отчета, который выполняется только один раз.
StartTime , RecurrenceInterval , RecurrenceCount и EndTime игнорируются, если для этого задано значение true |
Булев |
QueryStartTime |
Нет | При необходимости указывает время начала запроса, извлекающего данные. Этот параметр применим только для единовременного отчета о выполнении, для которого ExecuteNow задано значение true . Формат должен быть yyyy-MM-ddTHH:mm:ssZ |
Метка времени в виде строки |
QueryEndTime |
Нет | При необходимости указывает время окончания запроса, извлекающего данные. Этот параметр применим только для отчета о единовременном выполнении, где ExecuteNow установлено в true . Формат должен быть yyyy-MM-ddTHH:mm:ssZ |
Метка времени в виде строки |
RecurrenceInterval |
Да | Частота в часах, с которой должен генерироваться отчет. Минимальное значение равно 1, а максимальное — 17520 | Целое число |
RecurrenceCount |
Да | Количество создаваемых отчетов. Ограничение зависит от интервала повторения | Целое число |
Format |
Нет | Формат файла экспортированного файла. Формат по умолчанию — CSV | CSV/TSV |
CallbackUrl |
Нет | Общедоступный URL-адрес, который можно при необходимости настроить в качестве назначения обратного вызова. | Струна |
CallbackMethod |
Нет | Метод Get/Post, который можно настроить посредством URL-адреса обратного вызова | GET/POST |
EndTime |
Да | Метка времени в формате UTC, в которой будет завершено создание отчета. Формат должен быть yyyy-MM-ddTHH:mm:ssZ | Струна |
Заметка
При создании отчета обязательно 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, когда отчет был создан в этом формате: гггг-ММ-ддTHH:мм:ssZ |
ModifiedTime |
Время последнего изменения отчета в формате UTC: yyyy-MM-ddTHH:mm:ssZ |
ExecuteNow |
Параметр ExecuteNow, предоставленный в теле запроса при создании отчета. |
queryStartTime |
Время начала запроса, предоставленное в полезных данных запроса во время создания отчета. Это применимо только в том случае, если для ExecuteNow задано значение True. |
queryEndTime |
Время окончания запроса, предоставленное в полезных данных запроса во время создания отчета. Это применимо только в том случае, если для ExecuteNow задано значение True. |
StartTime |
Время начала, указанное в данных запроса при создании отчета |
ReportStatus |
Состояние выполнения отчета. Возможные значения: Приостановлено, Активнои Неактивно. |
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> . |
Тип контента | струна | application/json |
параметр пути
Никакой
параметр запроса
Имя параметра | Обязательно | Тип | Описание |
---|---|---|---|
reportId |
Да | струна | Фильтр для получения сведений о выполнении только тех отчетов, которые имеют reportId в качестве заданного аргумента. |
executionId |
Нет | струна | Отфильтруйте сведения только о отчетах с executionId , заданными в этом аргументе. Несколько executionIds можно указать, разделив их точкой с запятой ";". |
executionStatus |
Нет | string/enum | Отфильтруйте сведения только о отчетах с executionStatus , заданными в этом аргументе.Допустимые значения: Pending , Running , Paused и Completed Значение по умолчанию — Completed . |
getLatestExecution |
Нет | булев | 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, после которого действие ссылки на отчет прекратится, в этом формате: гггг-MM-ддTHH:мм:ssZ |
ReportGeneratedTime |
Время в UTC, когда отчет был создан в этом формате: гггг-мм-ддThh:мм:ssZ |
EndTime |
Время окончания, указанное в данных запроса при создании отчета. Это применимо только в том случае, если для ExecuteNow задано значение True. |
TotalRecurrenceCount |
RecurrenceCount , предоставленный в нагрузке запроса при создании отчета |
nextExecutionStartTime |
Метка времени UTC, когда начнется выполнение следующего отчета. |
TotalCount |
Число наборов данных в массиве значений |
StatusCode |
Код результата Возможные значения: 200, 400, 401, 403, 404 и 500 |
message |
Сообщение о состоянии из выполнения API |
Вы можете протестировать API через URL-адрес Swagger API .