Asynchrone API für benutzerdefinierte Berichte verwenden

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Edge Analytics bietet zahlreiche interaktive Dashboards, benutzerdefinierte Berichtsgeneratoren und zugehörige Funktionen. Diese Funktionen sind jedoch für die Interaktion gedacht: Sie senden entweder eine API- oder UI-Anfrage, und die Anfrage wird blockiert, bis der Analyseserver eine Antwort sendet.

Bei Analytics-Anfragen kann es jedoch zu einer Zeitüberschreitung kommen, wenn deren Verarbeitung zu lange dauert. Wenn eine Abfrageanfrage eine große Datenmenge verarbeiten muss (z. B. Hunderte von GB), kann dies aufgrund einer Zeitüberschreitung fehlschlagen.

Bei der asynchronen Abfrageverarbeitung können Sie sehr große Datasets abfragen und die Ergebnisse zu einem späteren Zeitpunkt abrufen. Sie könnten eine Offline-Abfrage in Betracht ziehen, wenn Sie feststellen, dass bei Ihren interaktiven Abfragen eine Zeitüberschreitung auftritt. Einige Situationen, in denen die asynchrone Abfrageverarbeitung eine gute Alternative darstellt, sind:

  • Analysieren und Erstellen von Berichten, die große Zeitintervalle umfassen.
  • Analysieren von Daten mit einer Vielzahl von Gruppierungsdimensionen und anderen Einschränkungen, die die Abfrage komplexer machen
  • Verwalten von Abfragen, wenn Sie feststellen, dass die Datenmengen für einige Nutzer oder Organisationen erheblich gestiegen sind.

In diesem Dokument wird beschrieben, wie asynchrone Anfragen mithilfe der API initiiert werden. Sie können auch die UI verwenden, wie unter Benutzerdefinierten Bericht ausführen beschrieben.

Reports API mit der Benutzeroberfläche vergleichen

In Benutzerdefinierte Berichte erstellen und verwalten wird erläutert, wie Sie mit der Edge-Benutzeroberfläche benutzerdefinierte Berichte erstellen und ausführen. Sie können diese Berichte synchron oder asynchron ausführen.

Die meisten Konzepte zum Erstellen benutzerdefinierter Berichte mit der Benutzeroberfläche gelten für die Verwendung der API. Das heißt, wenn Sie benutzerdefinierte Berichte mit der API erstellen, geben Sie in Edge integrierte Messwerte, Dimensionen und Filter an sowie alle benutzerdefinierten Messwerte, die Sie mithilfe der StatisticsCollector-Richtlinie erstellt haben.

Die Hauptunterschiede zwischen den in der Benutzeroberfläche und in der API generierten Berichten bestehen darin, dass die mit der API generierten Berichte in CSV- oder JSON-Dateien (durch Zeilenumbruch getrennt) geschrieben werden, anstatt in einen visuellen Bericht, der in der Benutzeroberfläche angezeigt wird.

Limits in Apigee Hybrid

Apigee Hybrid erzwingt eine Größenbeschränkung von 30 MB für den Ergebnisdatensatz.

So erstellen Sie eine asynchrone Analyseabfrage

Sie führen asynchrone Analyseabfragen in drei Schritten aus:

  1. Abfrage senden.

  2. Abfragestatus abrufen.

  3. Abfrageergebnisse abrufen.

Schritt 1: Abfrage senden

Sie müssen eine POST-Anfrage an die /abfragen API senden. Diese API weist Edge an, Ihre Anfrage im Hintergrund zu verarbeiten. Wenn die Übermittlung der Abfrage erfolgreich war, gibt die API den Status 201 und eine ID zurück, mit der Sie in späteren Schritten auf die Abfrage verweisen.

Beispiel:

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries -d @json-query-file
-u orgAdminEmail:password

Der Anfragetext ist eine JSON-Beschreibung der Abfrage. Geben Sie im JSON-Text die Messwerte, Dimensionen und Filter an, die den Bericht definieren.

Hier sehen Sie eine Beispieldatei für json-query-file:

{ 
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"         
}

Eine vollständige Beschreibung der Syntax des Anfragetexts finden Sie unter Informationen zum Anfragetext.

Beispielantwort:

Beachten Sie, dass die Abfrage-ID 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd in der Antwort enthalten ist. Neben dem HTTP-Status 201 bedeutet der state von enqueued, dass die Anfrage erfolgreich war.

HTTP/1.1 201 Created

{  
  "self":"/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
  "created":"2018-05-10T07:11:10Z",
  "state":"enqueued",
  "error":"false",
}

Schritt 2: Abfragestatus abrufen

Rufen Sie einen GET-Aufruf auf, um den Status der Abfrage anzufordern. Sie geben die Abfrage-ID an, die vom POST-Aufruf zurückgegeben wurde. Beispiel:

curl -X GET -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd
-u email:password

Beispielantworten:

Wenn die Abfrage noch in Bearbeitung ist, erhalten Sie eine Antwort wie die folgende, wobei state running ist:

{
    "self": "/organizations/myorg/environments/myenv/queries/1577884c-4f48-4735-9728-5da4b05876ab",
    "state": "running",
    "created": "2018-02-23T14:07:27Z",
    "updated": "2018-02-23T14:07:54Z"
}

Nachdem die Abfrage erfolgreich abgeschlossen wurde, wird eine Antwort wie die folgende angezeigt, wobei state auf completed gesetzt ist:

{
      "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
      "state": "completed",
      "result": {
        "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result",
        "expires": "2017-05-22T14:56:31Z"
      },
      "resultRows": 1,
      "resultFileSize": "922KB",
      "executionTime": "11 sec",
      "created": "2018-05-10T07:11:10Z",
      "updated": "2018-05-10T07:13:22Z"
}

Schritt 3: Abfrageergebnisse abrufen

Sobald der Abfragestatus completed lautet, können Sie mit der API get results die Ergebnisse abrufen, wobei die Abfrage-ID wieder 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd lautet.

curl -X GET -H "Content-Type:application/json" -O -J https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result
-u email:password

Zum Abrufen der heruntergeladenen Datei müssen Sie das von Ihnen verwendete Tool so konfigurieren, dass eine heruntergeladene Datei auf Ihrem System gespeichert wird. Beispiel:

  • Wenn Sie cURL verwenden, können Sie die Optionen -O -J wie oben gezeigt verwenden.

  • Wenn Sie Postman verwenden, müssen Sie die Schaltfläche Speichern und herunterladen anklicken. In diesem Fall wird eine ZIP-Datei mit dem Namen response heruntergeladen.

  • Wenn Sie den Chrome-Browser verwenden, wird der Download automatisch akzeptiert.

Wenn die Anfrage erfolgreich ist und die Ergebnismenge ungleich null ist, wird das Ergebnis als gezippte JSON-Datei (durch Zeilenumbruch getrennt) an den Client heruntergeladen. Der Name der heruntergeladenen Datei lautet:

OfflineQueryResult-<query-id>.zip

Beispiel:

OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip

Die ZIP-Datei enthält eine .gz-Archivdatei der JSON-Ergebnisse. Entpacken Sie die Download-Datei und extrahieren Sie die JSON-Datei mit dem Befehl gzip, um auf die JSON-Datei zuzugreifen:

unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gz

Informationen zum Anfragetext

In diesem Abschnitt werden alle Parameter beschrieben, die Sie im JSON-Anfragetext für eine Abfrage verwenden können. Einzelheiten zu Messwerten und Dimensionen, die Sie in Ihrer Abfrage verwenden können, finden Sie in der Referenz zu Analytics.

{  
   "metrics":[  
      {  
        "name":"metric_name",
        "function":"aggregation_function",
        "alias":"metric_dispaly_name_in_results",
        "operator":"post_processing_operator",
        "value":"post_processing_operand"
      },
   ...
   ],
   "dimensions":[  
      "dimension_name",
      ...
   ],
   "timeRange":"time_range",
   "limit":results_limit,
   "filter":"filter",
   "groupByTimeUnit": "grouping",
   "outputFormat": "format",
   "csvDelimiter": "delimiter"
}
Attribut Beschreibung Erforderlich?
metrics

Array von Messwerten. Sie können einen oder mehrere Messwerte für eine Abfrage angeben, in der jeder Messwert enthalten ist. Nur der Name des Messwerts ist erforderlich:

  • name: (Erforderlich) Der Name des Messwerts, wie er in der Tabelle unter Messwerte definiert ist.
  • function: (Optional) Die Aggregationsfunktion als avg, min, max oder sum.

    Nicht alle Messwerte unterstützen alle Aggregationsfunktionen. Die Dokumentation zu Messwerten enthält eine Tabelle, die den Namen des Messwerts und die Funktion (avg, min, max, sum) unterstützt durch den Messwert enthält.

  • alias: (Optional) Der Name der Eigenschaft, die die Messwertdaten in der Ausgabe enthält. Wenn nichts angegeben ist, wird standardmäßig der Messwertname zusammen mit dem Namen der Aggregationsfunktion verwendet.
  • operator: (Optional) Ein Vorgang, der für den Messwert ausgeführt werden soll, nachdem sein Wert berechnet wurde. Funktioniert mit dem Attribut value. Unterstützte Operationen umfassen: + - / % *.
  • value: (Optional) Der Wert, der vom angegebenen operator auf den berechneten Messwert angewendet wird.

Die Attribute operator und value definieren einen Nachbearbeitungsvorgang, der für den Messwert ausgeführt wird. Wenn Sie beispielsweise den Messwert response_processing_latency angeben, gibt der Messwert die durchschnittliche Antwortverarbeitungslatenz in Millisekunden zurück. Zum Umrechnen der Einheiten in Sekunden setzen Sie operator auf "/" und value auf ”1000.0“:

"metrics":[  
  {  
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]

Weitere Informationen finden Sie unter Referenz zu Analysemetriken, Dimensionen und Filtern.

Nein
dimensions Array von Dimensionen zum Gruppieren der Messwerte. Weitere Informationen finden Sie in der Liste der unterstützten Dimensionen. Sie können mehrere Dimensionen angeben. Nein
timeRange Zeitraum für die Abfrage.

Sie können die folgenden vordefinierten Strings verwenden, um den Zeitraum anzugeben:

  • last60minutes
  • last24hours
  • last7days

Alternativ können Sie timeRange als Struktur angeben, die Start- und Endzeitstempel im ISO-Format beschreibt: yyyy-mm-ddThh:mm:ssZ. Beispiel:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
Ja
limit Maximale Anzahl von Zeilen, die im Ergebnis zurückgegeben werden können. Nein
filter Boolescher Ausdruck, der zum Filtern von Daten verwendet werden kann. Filterausdrücke können mit UND/ODER-Begriffen kombiniert werden und sollten vollständig von Klammern umschlossen sein, um Mehrdeutigkeiten zu vermeiden. Weitere Informationen zu den Feldern, nach denen gefiltert werden kann, finden Sie im Referenzmaterial zu Analysemesswerten, -dimensionen und -filtern. Weitere Informationen zu den Tokens, die Sie zum Erstellen von Filterausdrücken verwenden, finden Sie unter Filterausdruckssyntax. Nein
groupByTimeUnit Zeiteinheit, die zum Gruppieren der Ergebnisse verwendet wird. Gültige Werte sind: second, minute, hour, day, week oder month.

Wenn eine Abfrage groupByTimeUnit enthält, ist das Ergebnis eine Aggregation basierend auf der angegebenen Zeiteinheit. Der resultierende Zeitstempel ist nicht auf die Millisekunde genau. Wenn eine Abfrage groupByTimeUnit weglässt, ist der resultierende Zeitstempel auf die Millisekunde genau.

Nein
outputFormat Ausgabeformat. Gültige Werte sind: csv oder json. Standardwert ist json entsprechend dem durch Zeilenumbruch abgegrenzten JSON.

Hinweis: Konfigurieren Sie das Trennzeichen für die CSV-Ausgabe mit dem Attribut csvDelimiter.

Nein
csvDelimiter Trennzeichen in der CSV-Datei, wenn outputFormat auf csv gesetzt ist. Die Standardeinstellung ist das Zeichen , (Komma). Zu den unterstützten Trennzeichen gehören das Komma (,), der senkrechte Strich (|) und das Tabulatorzeichen (\t). Nein

Filterausdruckssyntax

In diesem Referenzabschnitt werden die Tokens beschrieben, mit denen Sie Filterausdrücke im Anfragetext erstellen können. Der folgende Ausdruck verwendet beispielsweise das Token „ge“ (größer oder gleich):

"filter":"(message_count ge 0)"
Token Beschreibung Beispiele
in In Liste aufnehmen
(apiproxy in 'ethorapi','weather-api')

(apiproxy in 'ethorapi')

(apiproxy in 'Search','ViewItem')

(response_status_code in 400,401,500,501)

Hinweis: Strings müssen in Anführungszeichen stehen.

notin Von Liste ausschließen
(response_status_code notin 400,401,500,501)
eq Gleich (==)
(response_status_code eq 504)

(apiproxy eq 'non-prod')
ne Nicht gleich (!=)
(response_status_code ne 500)

(apiproxy ne 'non-prod')
gt Größer als (>)
(response_status_code gt 500)
lt Kleiner als (<)
(response_status_code lt 500)
ge Größer als oder gleich (>=)
(target_response_code ge 400)
le Kleiner als oder gleich (<=)
(target_response_code le 300)
like Gibt "true" zurück, wenn das Zeichenfolgenmuster mit dem angegebenen Muster übereinstimmt.

Das Beispiel rechts stimmt so überein:

- jeder Wert, der das Wort "buy" enthält

- jeder Wert, der auf „item“ endet

- jeder Wert, der mit „Prod“ beginnt

– jeder Wert, der mit 4 beginnt, "response_status_code" ist numerisch

(apiproxy like '%buy%')

(apiproxy like '%item')

(apiproxy like 'Prod%')
not like Gibt "false" zurück, wenn das Zeichenfolgenmuster mit dem angegebenen Muster übereinstimmt.
(apiproxy not like '%buy%')

(apiproxy not like '%item')

(apiproxy not like 'Prod%')
and Ermöglicht die Verwendung von "und"-Logik, um mehr als einen Filterausdruck einzubeziehen. Der Filter enthält Daten, die alle Bedingungen erfüllen.
(target_response_code gt 399) and (response_status_code ge 400)
or Ermöglicht die Verwendung von 'oder' Logik, um verschiedene mögliche Filterausdrücke auszuwerten. Der Filter enthält Daten, die mindestens eine der Bedingungen erfüllen.
(response_size ge 1000) or (response_status_code eq 500)

Einschränkungen und Standardwerte

Im Folgenden finden Sie eine Liste mit Einschränkungen und Standardeinstellungen für die asynchrone Abfrageverarbeitungsfunktion.

Einschränkung Standard Beschreibung
Limit für Abfrageaufrufe Siehe: Beschreibung Sie können bis zu sieben Aufrufe pro Stunde an die Verwaltungs-API /queries senden, um einen asynchronen Bericht zu erstellen. Wenn Sie das Aufrufkontingent überschreiten, gibt die API den HTTP-Fehler 429 zurück.
Aktives Abfragelimit 10 Es sind bis zu zehn aktive Abfragen für eine Organisation/Umgebung möglich.
Zeitraum für das Ausführen der Abfrage 6 Stunden Abfragen, die länger als sechs Stunden dauern, werden beendet.
Abfragezeitraum Siehe: Beschreibung Der maximal zulässige Zeitraum für eine Abfrage beträgt 365 Tage.
Limits für Dimensionen und Messwerte 25 Die maximale Anzahl an Dimensionen und Messwerten, die Sie in der Nutzlast der Abfrage angeben können.

Informationen zu Abfrageergebnissen

Das folgende Beispiel zeigt ein Ergebnis im JSON-Format. Die Ausgabe besteht aus JSON-Zeilen, die durch einen Zeilenumbruch getrennt sind.

{"message_count":"10209","apiproxy":"guest-auth-v3","hour":"2018-08-07 19:26:00 UTC"}
{"message_count":"2462","apiproxy":"carts-v2","hour":"2018-08-06 13:16:00 UTC"}    
…

Sie können die Ergebnisse von der URL abrufen, bis die Daten im Repository abgelaufen sind. Weitere Informationen finden Sie unter Einschränkungen und Standardwerte.

Beispiele

Beispiel 1: Summe der Nachrichtenanzahl

Abfrage der Summe der Nachrichtenanzahl in den letzten 60 Minuten.

Abfrage

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @last60minutes.json
-u orgAdminEmail:password

Anfragetext von last60minutes.json anfordern

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}

Beispiel 2: Benutzerdefinierter Zeitraum

Abfrage mit einem benutzerdefinierten Zeitraum.

Abfrage

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1 /organizations/myorg/environments/test/queries"
-d @last60minutes.json
-u orgAdminEmail:password

Anfragetext von last60minutes.json anfordern

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Beispiel 3: Transaktionen pro Minute

Abfrage des Messwerts für Transaktionen pro Minute (tpm).

Abfrage

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @tpm.json
-u orgAdminEmail:password

Anfragetext von tpm.json

{  
   "metrics":[  
      {  
         "name":"tpm"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}

Beispielergebnis

Auszug aus der Ergebnisdatei:

{"tpm":149995.0,"apiproxy":"proxy_1","minute":"2018-07-06 12:16:00 UTC"}
{"tpm":149998.0,"apiproxy":"proxy_1","minute":"2018-07-09 15:12:00 UTC"}
{"tpm":3.0,"apiproxy":"proxy_2","minute":"2018-07-11 16:18:00 UTC"}
{"tpm":148916.0,"apiproxy":"proxy_1","minute":"2018-07-15 17:14:00 UTC"}
{"tpm":150002.0,"apiproxy":"proxy_1","minute":"2018-07-18 18:11:00 UTC"}
...

Beispiel 4: Filterausdruck verwenden

Abfrage mit einem Filterausdruck, der einen booleschen Operator verwendet.

Abfrage

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries"
-d @filterCombo.json
-u orgAdminEmail:password

Anfragetext von filterCombo.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "filter":"(apiproxy ne \u0027proxy_1\u0027) and (apiproxy ne \u0027proxy_2\u0027)",
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Beispiel 5: Übergabe des Ausdrucks im Messwertparameter

Abfrage mit einem Ausdruck, der als Teil des Messwerts übergeben wird. Sie können nur einfache Ein-Operator-Ausdrücke verwenden.

Abfrage

curl -X POST -H "Content-Type:application/json"
https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/queries" 
-d @metricsExpression.json
-u orgAdminEmail:password

Anfragetext von metricsExpression.json anfordern

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}

So erstellen Sie eine asynchrone Monetarisierungsberichtsabfrage

Sie können alle erfolgreichen Monetarisierungstransaktionen innerhalb eines bestimmten Zeitraums für einen bestimmten Kriteriensatz mit den in diesem Abschnitt beschriebenen Schritten erfassen.

Wie bei asynchronen Analyseabfragen führen Sie asynchrone Monetarisierungsberichtsabfragen in drei Schritten durch: (1) Übermitteln Sie die Abfrage, (2) rufen Sie den Status der Abfrage ab und (3) rufen Sie die Abfrageergebnisse ab.

Schritt 1, Senden der Abfrage, wird unten beschrieben.

Die Schritte 2 und 3 sind identisch mit denen für asynchrone Analyseabfragen. Weitere Informationen finden Sie unter So erstellen Sie eine asynchrone Analyseabfrage.

Um eine Abfrage für einen asynchronen Monetarisierungsbericht zu senden, senden Sie eine POST-Anfrage an /mint/organizations/org_id/async-reports.

Optional können Sie die Umgebung angeben, indem Sie den Abfrageparameter environment übergeben. Wenn nicht angegeben, wird der Abfrageparameter standardmäßig auf prod gesetzt. Beispiel:

/mint/organizations/org_id/async-reports?environment=prod

Geben Sie im Anfragetext die folgenden Suchkriterien an.

Name Beschreibung Standard Erforderlich?
appCriteria ID und Organisation für eine bestimmte Anwendung, die in den Bericht aufgenommen werden soll. Wenn diese Eigenschaft nicht angegeben ist, werden alle Anwendungen in den Bericht aufgenommen. Nein
billingMonth Abrechnungsmonat für den Bericht, z. B. JULI. Ja
billingYear Abrechnungsjahr für den Bericht, z. B. 2015. Ja
currencyOption Währung für den Bericht. Gültige Werte sind:
  • LOCAL – Jede Zeile des Berichts wird mit dem anwendbaren Tarifplan angezeigt. Dies bedeutet, dass es in einem Bericht möglicherweise mehrere Währungen gibt, wenn die Entwickler Pläne haben, die unterschiedliche Währungen verwenden.
  • EUR – Transaktionen in lokaler Währung werden umgerechnet und in Euro angezeigt.
  • GPB - Transaktionen in lokaler Währung werden umgerechnet und in Britischen Pfund angezeigt.
  • USD - Transaktionen in lokaler Währung werden umgerechnet und in US-Dollar angezeigt.

Wenn Sie EUR, GBP oder USD auswählen, zeigt der Bericht alle Transaktionen in dieser Währung an, basierend auf dem Wechselkurs, der am Transaktionstag gültig ist.

Nein
devCriteria

Entwickler-ID oder E-Mail-Adresse und Organisationsname für einen bestimmten Entwickler, der in den Bericht aufgenommen werden soll. Wenn diese Eigenschaft nicht angegeben ist, werden alle Entwickler in den Bericht aufgenommen.

Beispiel:

"devCriteria":[{
    "id":"RtHAeZ6LtkSbEH56",
    "orgId":"my_org"}
]
Nein
fromDate Startdatum des Berichts in UTC. Ja
monetizationPakageIds ID eines oder mehrerer API-Pakete, die in den Bericht aufgenommen werden sollen. Wenn diese Eigenschaft nicht angegeben ist, werden alle API-Pakete in den Bericht aufgenommen. Nein
productIds ID eines oder mehrerer API-Produkte, die in den Bericht aufgenommen werden sollen. Wenn diese Eigenschaft nicht angegeben ist, werden alle API-Produkte in den Bericht aufgenommen. Nein
ratePlanLevels

Art des Tarifplans, der in den Bericht aufgenommen werden soll. Gültige Werte sind:

  • DEVELOPER - Tarifplan für Entwickler.
  • STANDARD - Standardtarifplan.

Wenn dieses Attribut nicht angegeben ist, werden sowohl entwicklerspezifische als auch standardmäßige Tarifpläne in den Bericht aufgenommen.

Nein
toDate Enddatum des Berichts in UTC. Ja

Die folgende Anforderung generiert beispielsweise einen asynchronen Monetarisierungsbericht für den Monat Juni 2017 für das angegebene API-Produkt und die Entwickler-ID. Datum und Uhrzeit des Berichts fromDate und toDate sind in UTC/GMT und können Zeiten enthalten.

curl -H "Content-Type:application/json" -X POST -d \
'{
      "fromDate":"2017-06-01 00:00:00",
      "toDate":"2017-06-30 00:00:00",    
     "productIds": [
        "a_product"
    ],
    "devCriteria": [{
        "id": "AbstTzpnZZMEDwjc",
        "orgId": "myorg"
    }]

 }' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/async-reports?environment=prod" \
-u orgAdminEmail:password