Model dostępu programowego dla komercyjnej platformy handlowej
Na tym diagramie przedstawiono wzorzec wywołania interfejsu API używany do tworzenia nowego szablonu raportu, planowania raportu niestandardowego i pobierania danych o błędach.
Rysunek 1. Ogólny przepływ wzorca wywołania interfejsu API
Ta lista zawiera więcej szczegółów na temat rysunku 1.
- Aplikacja kliencka może zdefiniować niestandardowy schemat/szablon raportu, wywołując interfejs API tworzenia zapytań raportu . Alternatywnie można użyć szablonu raportu (
QueryId
) z listy zapytań systemowych. - Po pomyślnym zakończeniu, interfejs API Create Report Template zwraca
QueryId
. - Następnie aplikacja kliencka wywołuje interfejs API tworzenia raportu przy użyciu
QueryID
wraz z datą rozpoczęcia raportu, interwałem powtórzenia, cyklem i opcjonalnym identyfikatorem URI wywołania zwrotnego. - W przypadku powodzenia interfejs API tworzenia raportu zwraca
ReportID
. - Aplikacja kliencka jest powiadamiana poprzez adres URI wywołania zwrotnego, jak tylko dane raportu będą gotowe do pobrania.
- Następnie aplikacja kliencka używa interfejsu API Get Report Executions, aby zapytać o stan raportu przy użyciu
Report ID
i zakresu dat. - Po pomyślnym zakończeniu zostanie zwrócony link pobierania raportu, a aplikacja może zainicjować pobieranie danych.
Specyfikacja języka zapytań raportów
Chociaż udostępniamy zapytania systemowe, które można użyć do tworzenia raportów, możesz również tworzyć własne zapytania na podstawie potrzeb biznesowych. Aby dowiedzieć się więcej o zapytaniach niestandardowych, zobacz specyfikację zapytań niestandardowych.
Tworzenie interfejsu API zapytania raportu
Ten interfejs API ułatwia tworzenie zapytań niestandardowych definiujących zestaw danych, z których należy eksportować kolumny i metryki. Interfejs API zapewnia elastyczność tworzenia nowego szablonu raportowania na podstawie potrzeb biznesowych.
Możesz również użyć zapytań systemu , które udostępniamy. Gdy niestandardowe szablony raportów nie są potrzebne, możesz wywołać interfejs API tworzenia raportów bezpośrednio przy użyciu QueryIds zapytań systemowych, które udostępniamy.
W poniższym przykładzie pokazano, jak utworzyć zapytanie niestandardowe, aby uzyskać znormalizowane użycie i szacowane opłaty finansowe za płatne jednostki SKU z zestawu danych ISVUsage w ostatnim miesiącu.
Składnia żądania
Metoda | URI żądania |
---|---|
POST | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries |
nagłówek żądania
Nagłówek | Typ | Opis |
---|---|---|
Autoryzacja | struna | Wymagane. Token dostępu firmy Microsoft Entra. Format to jest Bearer <token> . |
Typ zawartości | string |
application/JSON |
parametr ścieżki
Żaden
parametr zapytania
Żaden
przykład ładunku żądania
{
"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"
}
Glosariusz
Ta tabela zawiera kluczowe definicje elementów w ładunku żądania.
Parametr | Wymagane | Opis | Dozwolone wartości |
---|---|---|---|
Name |
Tak | Przyjazna dla użytkownika nazwa zapytania | struna |
Description |
Nie | Opis utworzonego zapytania | struna |
Query |
Tak | Ciąg zapytania oparty na potrzebie biznesowej | struna |
Notatka
Aby zapoznać się z przykładami zapytań niestandardowych, zobacz przykładowe zapytania.
Przykładowa odpowiedź
Ładunek odpowiedzi jest ustrukturyzowany w następujący sposób:
Kody odpowiedzi: 200, 400, 401, 403, 500
Przykład ładunku odpowiedzi:
{
"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
}
Glosariusz
Ta tabela zawiera kluczowe definicje elementów w odpowiedzi.
Parametr | Opis |
---|---|
QueryId |
Unikatowy identyfikator (UUID) utworzonego zapytania |
Name |
Nazwa podana w ładunku żądania podczas tworzenia zapytania |
Description |
Opis podany w ładunku żądania podczas tworzenia zapytania |
Query |
Niestandardowe zapytanie raportu podane w ładunku żądania podczas tworzenia zapytania |
Type |
Ustaw wartość userDefined dla ręcznie utworzonych zapytań |
User |
Identyfikator użytkownika używany do tworzenia zapytania |
CreatedTime |
Czas UTC utworzenia zapytania. Format: rrrr-MM-ddTHH:mm:ssZ |
TotalCount |
Liczba rekordów w tablicy Value |
StatusCode |
Kod wyniku Możliwe wartości to 200, 400, 401, 403, 500 |
message |
Komunikat o stanie wynikającym z wykonania interfejsu API |
Utwórz API raportu
Po pomyślnym utworzeniu niestandardowego szablonu raportu i otrzymaniu QueryID
w ramach odpowiedzi na Utwórz Zapytanie Raportu, ten interfejs API można wywołać, aby zaplanować wykonywanie zapytania w regularnych odstępach czasu. Możesz ustawić częstotliwość i harmonogram dostarczania raportu. W przypadku kwerend systemowych można również wywołać interfejs API tworzenia raportu za pomocą QueryId.
Składnia żądania
Metoda | Żądanie URI |
---|---|
POST | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport |
Nagłówek żądania
Nagłówek | Typ | Opis |
---|---|---|
Autoryzacja | struna | Wymagane. Token dostępu firmy Microsoft Entra. Format to jest Bearer <token> . |
Typ zawartości | struna | application/JSON |
parametr ścieżki
Żaden
parametr zapytania
Żaden
przykład danych żądania
{
"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",
}
Słownik
Ta tabela zawiera kluczowe definicje elementów w ładunku żądania.
Parametr | Wymagane | Opis | Dozwolone wartości |
---|---|---|---|
ReportName |
Tak | Przyjazna dla użytkownika nazwa przypisana do raportu | Struna |
Description |
Nie | Opis utworzonego raportu | Struna |
QueryId |
Tak | Identyfikator zapytania, który musi być używany do generowania raportów | Struna |
StartTime |
Tak | Znacznik czasu UTC, o którym rozpocznie się generowanie raportu. Format powinien być w postaci rrrr-MM-ddTHH:mm:ssZ | Struna |
ExecuteNow |
Nie | Ten parametr powinien służyć do tworzenia raportu, który jest wykonywany tylko raz.
StartTime , RecurrenceInterval , RecurrenceCount i EndTime są ignorowane, jeśli jest ustawiona wartość true |
logiczny |
QueryStartTime |
Nie | Opcjonalnie określa godzinę rozpoczęcia zapytania wyodrębniającego dane. Ten parametr ma zastosowanie tylko do jednorazowego raportu wykonania, który ma ExecuteNow ustawiony na true . Format powinien być rrrr-MM-ddTHH:mm:ssZ. |
Znacznik czasu jako ciąg |
QueryEndTime |
Nie | Opcjonalnie określa godzinę zakończenia zapytania wyodrębniającego dane. Ten parametr ma zastosowanie tylko dla jednorazowego raportu wykonania, który ma ExecuteNow ustawiony na true . Format powinien być rrrr-MM-ddTHH:mm:ssZ |
Znacznik czasu jako ciąg znaków |
RecurrenceInterval |
Tak | Częstotliwość w godzinach generowania raportu. Wartość minimalna to 1, a wartość maksymalna to 17520 | Liczba całkowita |
RecurrenceCount |
Tak | Liczba raportów do wygenerowania. Ograniczenie zależy od okresu powtarzalności | Liczba całkowita |
Format |
Nie | Format pliku wyeksportowanego. Domyślny format jest CSV | CSV/TSV |
CallbackUrl |
Nie | Publicznie dostępny adres URL, który można opcjonalnie skonfigurować jako miejsce docelowe wywołania zwrotnego | Struna |
CallbackMethod |
Nie | Metoda Get/Post, którą można skonfigurować z użyciem adresu URL wywołania zwrotnego | GET/POST |
EndTime |
Tak | Sygnatura czasowa UTC, na której zakończy się generowanie raportu. Format powinien być rrrr-MM-ddTHH:mm:ssZ | Struna |
Nota
Podczas tworzenia raportu obowiązkowe jest posiadanie EndTime
lub kombinacji RecurrenceInterval
i RecurrenceCount
.
Przykładowa odpowiedź
Ładunek odpowiedzi jest ustrukturyzowany w następujący sposób:
Kod odpowiedzi: 200, 400, 401, 403, 404, 500
Ładunek odpowiedzi:
{
"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
}
Słownik
Ta tabela zawiera kluczowe definicje elementów w odpowiedzi.
Parametr | Opis |
---|---|
ReportId |
Unikatowy identyfikator (UUID) utworzonego raportu |
ReportName |
Nazwa podana w ładunku żądania podczas tworzenia raportu |
Description |
Opis podany w ładunku żądania podczas tworzenia raportu |
QueryId |
Identyfikator zapytania podany w ładunku żądania podczas tworzenia raportu |
Query |
Tekst zapytania, który zostanie wykonany dla tego raportu |
User |
Identyfikator użytkownika używany do tworzenia raportu |
CreatedTime |
Czas UTC utworzenia raportu w tym formacie: yyyy-MM-ddTHH:mm:ssZ |
ModifiedTime |
Czas UTC ostatniej modyfikacji raportu w tym formacie: rrrr-MM-ddTHH:mm:ssZ |
ExecuteNow |
Parametr ExecuteNow podany w ładunku żądania podczas tworzenia raportu |
queryStartTime |
Czas rozpoczęcia zapytania podany w ładunku żądania podczas tworzenia raportu. Ma to zastosowanie tylko wtedy, gdy ExecuteNow jest ustawiona na wartość "True" |
queryEndTime |
Czas zakończenia zapytania podany w ładunku żądania podczas tworzenia raportu. Ma to zastosowanie tylko wtedy, gdy ExecuteNow jest ustawiona na wartość "True" |
StartTime |
Godzina rozpoczęcia podana w ładunku żądania podczas tworzenia raportu |
ReportStatus |
Stan wykonania raportu. Możliwe wartości to Wstrzymane, Aktywnei Nieaktywne. |
RecurrenceInterval |
Przedział powtarzania podany w treści żądania podczas tworzenia raportu |
RecurrenceCount |
Liczba pozostałych powtórzeń dla raportu |
CallbackUrl |
Adres URL wywołania zwrotnego podany w ładunku żądania podczas tworzenia raportu |
CallbackMethod |
Metoda wywołania zwrotnego podana w treści żądania podczas tworzenia raportu |
Format |
Format plików raportu podanych w ładunku żądania podczas tworzenia raportu |
EndTime |
Godzina zakończenia podana w treści żądania podczas tworzenia raportu. Ma to zastosowanie tylko wtedy, gdy ExecuteNow jest ustawiona na wartość "True" |
TotalRecurrenceCount |
RecurrenceCount podane w ładunku żądania podczas tworzenia raportu |
nextExecutionStartTime |
Sygnatura czasowa UTC, kiedy rozpocznie się następne wykonanie raportu |
TotalCount |
Liczba rekordów w tablicy Value |
StatusCode |
Kod wyniku. Możliwe wartości to 200, 400, 401, 403, 500 |
message |
Komunikat o stanie wykonania interfejsu API |
Uzyskaj dostęp do interfejsu API wykonywania raportów
Za pomocą tej metody można wykonywać zapytania o stan wykonania raportu używając ReportId
otrzymanych z API do tworzenia raportów. Metoda zwraca link pobierania raportu, jeśli raport jest gotowy do pobrania. W przeciwnym razie metoda zwraca stan. Możesz również użyć tego interfejsu API, aby uzyskać wszystkie wykonania związane z danym raportem.
Ważny
Ten interfejs API ma domyślne parametry zapytania ustawione dla executionStatus=Completed
i getLatestExecution=true
. W związku z tym wywołanie interfejsu API przed pierwszym pomyślnym wykonaniem raportu zwróci wartość 404. Oczekujące wykonania można uzyskać, konfigurując executionStatus=Pending
.
Składnia żądania
Metoda | Identyfikator URI żądania |
---|---|
Pobierz | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/{reportId}?executionId={executionId}&executionStatus={executionStatus}&getLatestExecution={getLatestExecution} |
Nagłówek żądania
Nagłówek | Typ | Opis |
---|---|---|
Autoryzacja | struna | Wymagane. Token dostępu firmy Microsoft Entra. Format to jest Bearer <token> . |
Typ zawartości | struna | application/json |
parametr ścieżki
Żaden
parametr zapytania
Nazwa parametru | Wymagane | Typ | Opis |
---|---|---|---|
reportId |
Tak | struna | Filtruj, aby uzyskać szczegóły wykonania tylko tych raportów, w których argument ten zawiera reportId . |
executionId |
Nie | struna | Filtruj, aby uzyskać szczegółowe informacje wyłącznie o raportach, które mają executionId określone w tym argumencie. Wiele executionIds można określić, oddzielając je średnikami ";". |
executionStatus |
Nie | ciąg/wyliczenie | Filtruj, aby uzyskać szczegółowe informacje o raportach z executionStatus podanymi w tym argumencie.Prawidłowe wartości to: Pending , Running , Paused i Completed Wartość domyślna to Completed . |
getLatestExecution |
Nie | logiczny | API zwróci szczegóły najnowszego wykonania raportu. Domyślnie ten parametr jest ustawiony na wartość true . Jeśli zdecydujesz się przekazać wartość tego parametru jako false , interfejs API zwróci ostatnie 90 dni wystąpień wykonywania. |
treść żądania
Żaden
Przykładowa odpowiedź
Ładunek odpowiedzi jest ustrukturyzowany w następujący sposób:
Kody odpowiedzi: 200, 400, 401, 403, 404, 500
Przykład ładunku odpowiedzi:
{
"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
}
Po zakończeniu wykonywania raportu wyświetlany jest stan wykonania Completed
. Raport można pobrać, wybierając adres URL w reportAccessSecureLink
.
Słownik
Kluczowe definicje elementów w odpowiedzi.
Parametr | Opis |
---|---|
ExecutionId |
Unikatowy identyfikator (UUID) instancji wykonania |
ReportId |
Identyfikator raportu skojarzony z instancją wykonania |
RecurrenceInterval |
Interwał występowania podawany podczas tworzenia raportu |
RecurrenceCount |
Liczba cykli podana podczas tworzenia raportu |
CallbackUrl |
Adres URL wywołania zwrotnego skojarzony z instancją wykonawczą |
CallbackMethod |
Metoda wywołania zwrotnego podana w ładunku żądania podczas tworzenia raportu |
Format |
Format wygenerowanego pliku na końcu wykonywania |
ExecutionStatus |
Status instancji wykonywania raportu. Prawidłowe wartości to: Pending , Running , Paused i Completed |
ReportLocation |
Lokalizacja, w której jest pobierany raport. |
ReportAccessSecureLink |
Łącze, za pomocą którego można bezpiecznie uzyskać dostęp do raportu |
ReportExpiryTime |
Czas UTC, po którym link raportu wygaśnie w tym formacie: rrrr-MM-ddTHH:mm:ssZ |
ReportGeneratedTime |
Czas UTC, o którym raport został wygenerowany w tym formacie: rrrr-MM-ddTHH:mm:ssZ |
EndTime |
Godzina zakończenia podana w treści żądania przy tworzeniu raportu. Ma to zastosowanie tylko wtedy, gdy ExecuteNow jest ustawiona na wartość "True" |
TotalRecurrenceCount |
RecurrenceCount podane w ładunku żądania podczas tworzenia raportu |
nextExecutionStartTime |
Sygnatura czasowa UTC, kiedy rozpocznie się następne wykonanie raportu |
TotalCount |
Liczba zestawów danych w tablicy Value |
StatusCode |
Kod wyniku Możliwe wartości to 200, 400, 401, 403, 404 i 500 |
message |
Komunikat o stanie działania interfejsu API |
Interfejsy API można wypróbować za pomocą adresu URL interfejsu API programu Swagger.