Бөлісу құралы:


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

На этой схеме показан шаблон вызова 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 обеспечивает гибкость создания нового шаблона отчетов на основе бизнес-потребностей.

Вы также можете использовать системные запросы, которые мы предоставляем. Если пользовательские шаблоны отчетов не требуются, можно вызывать 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 .