Udostępnij za pośrednictwem


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.

Ilustruje wzorzec wywołania interfejsu API używany do tworzenia nowego szablonu raportu, planowania niestandardowego raportu 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.

  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.
  2. Po pomyślnym zakończeniu, interfejs API Create Report Template zwraca QueryId.
  3. 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.
  4. W przypadku powodzenia interfejs API tworzenia raportu zwraca ReportID.
  5. Aplikacja kliencka jest powiadamiana poprzez adres URI wywołania zwrotnego, jak tylko dane raportu będą gotowe do pobrania.
  6. Następnie aplikacja kliencka używa interfejsu API Get Report Executions, aby zapytać o stan raportu przy użyciu Report ID i zakresu dat.
  7. 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, RecurrenceCounti 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, Pausedi 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, Pausedi 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.