Anwendungsfall-Leitfaden für Data Kiosk
How to use the Data Kiosk API.
API-Version: 2023-11-15
Was ist die Data Kiosk-API?
Mit der Verkaufspartner-API für Data Kiosk können Sie GraphQL-Abfragen über eine Vielzahl von Schemata einreichen, damit Verkaufspartner ihre Geschäfte leichter verwalten können.
Die wichtigsten Punkte
- Data Kiosk kann in der Antwort des
getQuery
-Vorgangs ein Datendokument oder ein Fehlerdokument zurückgeben. Wenn die Abfrage erfolgreich war, aber keine Daten zurückgegeben wurden, gibt es kein Dokument zurück.- Das Datendokument enthält die Ausgabe im JSONL-Format, wenn eine erfolgreiche Anfrage mit dem
DONE
-Bearbeitungsstatus bearbeitet wird. - Bei einer erfolglosen Anfrage mit
FATAL
-Bearbeitungsstatus hat das Fehlerdokument ein JSON-Format und enthält die Fehlermeldung.
- Das Datendokument enthält die Ausgabe im JSONL-Format, wenn eine erfolgreiche Anfrage mit dem
- Der
processingStatus
DONE
ohneerrorDocumentId
oderdataDocumentId
in der Antwort zumgetQuery
-Vorgang bedeutet, dass die Anfrage ohne Daten abgeschlossen wurde oder dass für den angegebenen Zeitraum keine Daten vorliegen. Wiederholen Sie in dem Fall die Anfrage mit anderen Parametern. - Die Data Kiosk-API unterstützt keine Abfrageplanung.
- Die Data Kiosk-API unterstützt kein Abfrage-Backlogging. Data Kiosk begrenzt die Anzahl gleichzeitiger Nicht-Terminal-Abfragen pro Verkaufspartner und pro GraphQL-Abfrage.
Anleitung: Daten mit einer GraphQL-Abfrage anfordern und filtern
Diese Anleitung beschreibt, wie Sie Daten mit einer GraphQL-Abfrage anfordern und filtern.
Voraussetzungen:
Um dieses Tutorial abzuschließen, benötigen Sie:
- Die richtige Rolle für die Daten, die Sie anfordern. Diese Anleitung verwendet Umsatz- und Traffic-Daten in den Beispielen. Dazu ist die Rolle "Markenanalyse" erforderlich.
Schritt 1: Abfrageanfrage erstellen
Erstellen Sie eine asynchrone Abfrageanfrage, indem Sie die Abfrage spezifizieren. Bei der Abfrage muss es sich um eine gültige GraphQL-Abfrage handeln, die dem Schema entspricht. Die Eingabeparameter der Abfrage können nach Belieben modifiziert werden. Die Antwortfelder können in beliebiger Reihenfolge ein- oder ausgeschlossen werden.
Rufen Sie den createQuery
-Vorgang auf und geben Sie im Text die Abfrage an:
Textparameter
Name | Type | Beschreibung | Erforderlich |
---|---|---|---|
query |
string | The GraphQL query that is compliant with the schema. A query can be at most 8,000 characters after unnecessary whitespace is removed. Refer to the schema to build your query. | Ja |
Beispiele für Anfragen
Beispiel 1: Erstellen Sie eine Abfrageanfrage für salesAndTrafficByDate
, um eine Teilmenge von Feldern in der Antwort abzurufen.
POST https://sellingpartnerapi-na.amazon.com/dataKiosk/2023-11-15/queries
{
"query": "{analytics_salesAndTraffic_2023_11_15{salesAndTrafficByDate(startDate:\"2023-01-01\" endDate:\"2023-10-31\" aggregateBy:DAY marketplaceIds:[\"ATVPDKIKX0DER\"]){endDate marketplaceId startDate traffic{averageOfferCount browserPageViews averageParentItems browserPageViewsB2B browserSessions}sales{averageSalesPerOrderItem{amount currencyCode}averageSalesPerOrderItemB2B{amount currencyCode}averageSellingPrice{amount currencyCode}claimsGranted refundRate unitsOrderedB2B unitsRefunded unitsShipped}}}}"
}
Beispiel 2: Erstellen Sie eine Abfrageanfrage für salesAndTrafficByAsin
, um eine Teilmenge von Feldern in der Antwort abzurufen.
POST https://sellingpartnerapi-na.amazon.com/dataKiosk/2023-11-15/queries
{
"query": "{analytics_salesAndTraffic_2023_11_15{salesAndTrafficByAsin(startDate:\"2023-01-01\" endDate:\"2023-10-31\" aggregateBy:PARENT marketplaceIds:[\"ATVPDKIKX0DER\"]){childAsin endDate marketplaceId parentAsin sales{orderedProductSales{amount currencyCode}totalOrderItems totalOrderItemsB2B}sku startDate traffic{browserPageViews browserPageViewsB2B browserPageViewsPercentage browserPageViewsPercentageB2B browserSessionPercentage unitSessionPercentageB2B unitSessionPercentage}}}}"
}
Antwort
Eine erfolgreiche Antwort schließt die folgende Eigenschaft ein:
Name | Type | Beschreibung |
---|---|---|
queryId |
string | Die Kennung für die Abfrage. Diese Kennung ist nur in Kombination mit einer Verkaufspartner-ID eindeutig. |
Beispiel für eine Antwort
{
"queryId": "012345678901"
}
Schritt 2: Überprüfen, ob die Abfrageverarbeitung abgeschlossen wurde
Nach dem Aufruf des createQuery
-Vorgangs empfängt Amazon die Anfrage und beginnt mit ihrer Verarbeitung. Vergewissern Sie sich, dass die Verarbeitung abgeschlossen ist, bevor Sie fortfahren. Informationen zum Überprüfen, ob die Abfrageverarbeitung abgeschlossen wurde, finden Sie unter Überprüfen, ob die Abfrageverarbeitung abgeschlossen wurde.
Schritt 3: Informationen abrufen, die zum Abrufen des Abfrageergebnisses erforderlich sind
Rufen Sie den getDocument
-Vorgang auf, um die Informationen zu erhalten, die zum Abrufen des Inhalts des Abfrageergebnisdokuments erforderlich sind. Dies beinhaltet eine vorsignierte URL für das Dokument. Wenn das Dokument komprimiert ist, gibt der Content-Encoding
-Header den Komprimierungsalgorithmus an. Beachten Sie, dass sich dies von der Art unterscheidet, wie die Berichts-API Informationen zur Komprimierung bereitstellt.
Pfadparameter
Name | Type | Beschreibung | Erforderlich |
---|---|---|---|
documentId |
string | Die Kennung für das Abfrageergebnisdokument. Die Kennung ist nur in Kombination mit einer Verkaufspartner-ID eindeutig. | Ja |
Beispiel anfordern
GET https://sellingpartnerapi-na.amazon.com/dataKiosk/2023-11-15/documents/DOC-b8b0-4226-b4b9-0ee058ea5760
Antwort
Eine erfolgreiche Antwort umfasst Folgendes:
Name | Type | Beschreibung |
---|---|---|
documentId |
string | Die Kennung für das Abfragedokument. Die Kennung ist nur in Kombination mit einer Verkaufspartner-ID eindeutig. |
documentUrl |
string | Eine vorsignierte URL, die zum Abrufen des Data Kiosk-Dokuments verwendet werden kann. Diese URL läuft nach fünf Minuten ab. Wenn das Data Kiosk-Dokument komprimiert ist, gibt der Content-Encoding -Header den Komprimierungsalgorithmus an. |
Beispiel für eine Antwort
{
"documentId": "DOC-b8b0-4226-b4b9-0ee058ea5760",
"documentUrl": "https://d34o8swod1owfl.cloudfront.net/SampleResult%2BKey%3DSample%2BINITVEC%3D58+fa+bf+a7+08+11+95+0f+c1+a8+c6+e0+d5+6f+ae+c8"
}
Speichern Sie die documentUrl
zur Verwendung im folgenden Schritt.
Schritt 4: Das Dokument herunterladen
Sie müssen das Abfragedokument mithilfe der in Schritt 3 zurückgegebenen Informationen herunterladen.
Der folgende Beispielcode zeigt, wie Sie ein Data Kiosk-Dokument herunterladen. Verwenden Sie den documentUrl
-Wert aus dem vorherigen Schritt als Argument für den url
-Parameter der download
-Methode der DownloadExample
-Klasse.
Hinweis: Sie müssen die Verschlüsselung der Daten in Ruhe durchgehend aufrechterhalten. Der Inhalt eines unverschlüsselten Abfrageergebnisdokuments darf niemals auf Festplatte gespeichert werden, auch nicht vorübergehend, da das Abfrageergebnisdokument vertrauliche Informationen enthalten kann. Der folgende Beispielcode veranschaulicht dieses Prinzip:
// DownloadExample.java
// This example is for use with the Selling Partner API for Data Kiosk, Version: 2023-11-15
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import com.squareup.okhttp.ResponseBody;
/**
* Example that downloads a Data Kiosk document.
*/
public class DownloadExample {
public static void main(String[] args) {
String url = "<URL from the getDocument response>";
DownloadExample obj = new DownloadExample();
try {
obj.download(url);
} catch (IOException e) {
// Handle exceptions here.
e.printStackTrace();
}
}
/**
* Download the document from the given Amazon Simple Storage Service (Amazon S3) URL.
*
* @param url the signed Amazon S3 URL to retrieve the document from.
* @throws IOException when there is an error reading the response.
*/
public void download(String url) throws IOException {
OkHttpClient httpclient = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.get()
.build();
Response response = httpclient.newCall(request).execute();
if (!response.isSuccessful()) {
System.out.printf("Call to download content was unsuccessful with response code: %d and message: %s%n",
response.code(), response.message());
return;
}
try (ResponseBody responseBody = response.body();
InputStream inputStream = responseBody.byteStream();
// Note: If the Data Kiosk document is compressed, the 'Content-Encoding' header will indicate the
// compression algorithm. Most HTTP clients are capable of automatically decompressing downloaded files
// based on the 'Content-Encoding' header.
// More Information: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding
//
// The OkHttp client will automatically set the "Accept-Encoding" header and respect the
// "Content-Encoding" header, so it is not required to unzip the stream.
// For clients which do not automatically decompress, wrapping the stream in a GZIP stream may be
// required, for example:
// InputStream unzippedInputStream = new GZIPInputStream(inputStream);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
BufferedReader reader = new BufferedReader(inputStreamReader)) {
String line;
while ((line = reader.readLine()) != null) {
// Process line by line.
System.out.println(line);
}
}
}
}
Updated 23 days ago