Tutorial: Automatisieren Sie Ihre SP-API-Aufrufe mithilfe eines Java-SDK
Automatisieren Sie Ihre SP-API-Aufrufe mit dem Tokenaustausch und der Authentifizierung von Login with Amazon (LWA).
In diesem Tutorial wird beschrieben, wie Sie ein Java-SDK mit Login with Amazon (LWA) Tokenaustausch und Authentifizierung generieren, um Ihre Anwendung nahtlos zu erstellen. Sie lernen die Voraussetzungen kennen, die für die Erstellung des Java-SDK erforderlich sind, und sehen sich auch ein Beispiel an, das die Verkaufspartner-API für Verkäufer und den Swagger Code Generator verwendet.
Schauen Sie sich zunächst an, wie der Autorisierungsprozess funktioniert.
Tutorial
Das folgende Tutorial hilft Ihnen dabei, Ihr eigenes Java-SDK für die Automatisierung von SP-API-Aufrufen einzurichten.
Voraussetzungen
Um dieses Tutorial abzuschließen, benötigen Sie die folgenden Voraussetzungen:
- Eine Hybrid- oder SP-API-App im Entwurfs- oder Veröffentlichungsstatus
- IDE-Software (Integrierte Entwicklungsumgebung) (in dieser exemplarischen Vorgehensweise wird Eclipse IDE unter Windows verwendet)
Bevor Ihre Anwendung eine Verbindung zur Vertriebspartner-API herstellen kann, müssen Sie sie registrieren und sie muss von einem Vertriebspartner autorisiert werden. Wenn Sie keine Hybrid- oder SP-API-App haben, folgen Sie den Schritten registriere dich als Entwickler, registriere deine Bewerbung, und Autorisierung von API-Anwendungen für Vertriebspartner. Kehren Sie dann zu diesem Tutorial zurück.
Richten Sie als Nächstes Ihren Arbeitsbereich für das Tutorial ein.
Schritt 1. Richte deinen Workspace ein
Zunächst müssen Sie die erforderlichen Softwarepakete herunterladen, Swagger Code Generator herunterladen und das SP-API-Modell-Repository klonen.
-
Erstellen Sie auf Ihrem lokalen Laufwerk ein Verzeichnis für dieses Projekt und benennen Sie es
SwaggerToCL
. -
Laden Sie die folgenden Tools herunter und stellen Sie sie in Ihrem
$PATH
. -
Führen Sie den folgenden Befehl aus, um den Swagger Code Generator herunterzuladen:
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar -
Kopieren
swagger-codegen-cli.jar
in dein lokales VerzeichnisC:\\SwaggerToCL
. -
Gehe in GitHub zu https://github.com/amzn/selling-partner-api-models/tree/main/models und verwende den folgenden Befehl, um das zu klonen
selling-partner-api-models
Repository in dein lokales VerzeichnisC:\\SwaggerToCL
.git clone https://github.com/amzn/selling-partner-api-models -
Navigiere zum
selling-partner-api-models\models
Ordner in Ihrer lokalen Kopie des Repositorys und kopieren Sie alle JSON-Dateien aus den Unterordnern der Modelle inC:\\SwaggerToCL
.Das
selling-partner-api-models
Das Repository hat zwei Verzeichnisse:- Verzeichnis der Modelle - enthält alle derzeit verfügbaren API-Modelle für Vertriebspartner.
Hinweis
Entwickler verwenden Swagger Codegen um Client-Bibliotheken aus diesen Modellen zu generieren. Swagger CodeGen ist ein Open-Source-Projekt, das die automatische Generierung von API-Clientbibliotheken (SDK-Generierung), Server-Stubs und Dokumentation aus einer OpenAPI-Spezifikation ermöglicht. Weitere Informationen finden Sie unter Swagger Codegen.
- Verzeichnis der Kunden - enthält eine Java-Bibliothek mit dem Namen
sellingpartner-api-aa-java
und eine C#-Bibliothek namenssellingpartner-api-aa-csharp
mit Schnurrbartschablonen zur Verwendung mitswagger-codegen
um Client-Bibliotheken zu generieren, die Authentifizierungs- und Autorisierungsfunktionen enthalten. Dassellingpartner-api-documents-helper-java
Ordner enthält Hilfsklassen für verschlüsselte Dokumente. Dersample-code
Ordner enthält Java-Code-Beispiele für Eingeschränktes Datentoken (RDT).
Nachdem Sie das erforderliche Setup abgeschlossen haben, besteht der nächste Schritt darin, das Java-SDK mit den Authentifizierungs- und Autorisierungsklassen zu generieren, die in der sellingpartner-api-aa-java
Mappe.
Schritt 2. Generieren Sie das Java-SDK für SP-APIs
In diesem Schritt generieren Sie das SDK anhand der Vorlagen im Ordner selling-partner-api-models\clients\sellingpartner-api-aa-java
in Ihrer lokalen Kopie des Repositorys. Dieser Ordner enthält eine Autorisierungs- und Authentifizierungsbibliothek sowie benutzerdefinierte Vorlagen für den Swagger Code Generator und eine Konfigurationsdatei zum Generieren der richtigen Version des SDK.
Um das Java-SDK zu generieren, müssen Sie den folgenden Befehl für jede JSON-Datei in Ihrem lokalen Verzeichnis ausführen:
java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate \
-i C:\SwaggerToCL\[name of model].json \
-l java -t [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\swagger-codegen\templates\ \
-o C:\SwaggerToCL\[name of client library] \
-c [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\java\config.json
Führen Sie beispielsweise den folgenden Befehl aus, um Java-Code für zu generieren sellers.json
.
java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate \
-i C:\SwaggerToCL\Sellers.json \
-l java -t [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\swagger-codegen\templates\ \
-o C:\SwaggerToCL\Sellers_JavaCL \
-c [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\java\config.json
Wiederholen Sie diesen Schritt, um SDKs für jede der SP-APIs zu generieren, die in der Verzeichnis der Modelle.
Das generierte SDK enthält die Klassen für die Konfiguration Ihrer LWA-Anmeldeinformationen und verwendet sie für den Austausch von LWA-Token.
In den folgenden Schritten x.x bezieht sich auf die neueste Version der AA-Bibliothek. Beziehen Sie sich auf die lies mich um die neueste Version zu erhalten.
Schritt 3. Erstellen Sie die Bibliothek der Authentication/Authorization Library (AA)
Nachdem Sie das SDK generiert haben, erstellen Sie die AA-Bibliothek.
- Navigiere zum
selling-partner-api-models\clients\sellingpartner-api-aa-java
Ordner Ihrer lokalen Kopie des Repositorys und starten Siemvn package
. Dadurch wird ein Ordner mit dem Namen generierttarget
. In diesem Ordner befindet sich einJAR
Datei benanntsellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar
(oder ähnlich benannt) und alle erforderlichen Abhängigkeiten. - Führen Sie den folgenden Befehl aus, um die
JAR
-Datei in Ihrem lokalen {{1}}-Repository zu installieren.
mvn install:install-file -Dfile=[path to JAR file in "target" folder] -DgroupId=com.amazon.sellingpartnerapi -DartifactId=sellingpartnerapi-aa-java -Dversion=x.x -Dpackaging=jar
Sie können das aktuelle finden groupId
, artifactId
, und version
Werte nahe dem oberen Rand von pom.xml
Datei in der selling-partner-api-models\clients\sellingpartner-api-aa-java
Mappe.
Beispiel:
mvn install:install-file -Dfile=C:\SwaggerToCL\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-x.x.jar -DgroupId=com.amazon.sellingpartnerapi -DartifactId=sellingpartnerapi-aa-java -Dversion=x.x -Dpackaging=jar
mvn install:install-file -Dfile=C:\SwaggerToCL\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar -DgroupId=com.amazon.sellingpartnerapi -DartifactId=sellingpartnerapi-aa-java -Dversion=x.x -Dpackaging=jar
Schritt 4. Fügen Sie die Bibliothek als Abhängigkeit des SDK hinzu
Um die Bibliothek als Abhängigkeit hinzuzufügen, müssen Sie die pom.xml
datei.
-
Navigieren Sie in Ihrem lokalen Verzeichnis zu
selling-partner-api-models/clients/sellingpartner-api-aa-java
und öffne daspom.xml
datei. -
Fügen Sie den folgenden Code als Abhängigkeit in die Datei ein.
<dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency> -
Speichern und schließen Sie die Datei.
Der nächste Schritt besteht darin, die eigentliche Anwendung zu schreiben und mithilfe des generierten Java-SDK eine Verbindung zur SP-API herzustellen.
Schritt 5. Stellen Sie mithilfe des generierten Java-SDK eine Verbindung zur Vertriebspartner-API her
In diesem Schritt stellen Sie mithilfe Ihres generierten Java-SDK eine Verbindung zur Vertriebspartner-API her. Diese Schritte verwenden Eclipse-IDE um das generierte SDK zu importieren und eine Verbindung zur Vertriebspartner-API herzustellen, aber Sie können Ihre bevorzugte IDE verwenden.
-
Gehen Sie in {{0}} zum Menü Datei und wählen Sie Projekte aus dem Dateisystem öffnen aus. Importieren Sie dann das generierte Java SDK.
-
In
src/main/java
füge ein hinzuclass
um deinen Code zu schreiben. -
Geben Sie den Code in das hinzugefügte Feld ein
class
um die folgende Instanz zu konfigurieren:- LWA-Anmeldeinformationen (siehe Konfigurieren Sie Ihre LWA-Anmeldeinformationen)
Hinweis
Hinweis: Wenn der Klassenpfad die Klassen in
JAR
nicht erkennt, dann müssen Sie dietarget
-Dateien hinzufügen, die im Ordner {{2}} erstellt wurden. Dieser befindet sich im generierten SDK-Ordner. -
Erstellen Sie eine Instanz der generierten SDK-API und rufen Sie die Operationen auf. Ein Beispiel finden Sie im folgenden Beispielcode für die Verbindung mit der Verkaufspartner-API für Verkäufer (vorausgesetzt, Sie haben das SDK für diese API generiert).
import io.swagger.client.*; import io.swagger.client.auth.*; import io.swagger.client.model.*; import io.swagger.client.api.SellersApi; import java.io.File; import java.util.*; import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials; import com.amazon.SellingPartnerAPIAA.LWAException; import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_NOTIFICATIONS_API; // for grantless operations (Notifications API) import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_MIGRATION_API; // for grantless operations (Authorization API) public class SellersApiDemo { public static void main(String[] args) { //Configure your LWA credentials : LWAAuthorizationCredentials lwaAuthorizationCredentials = LWAAuthorizationCredentials.builder() .clientId("amzn1.application-*********************") .clientSecret("***********************************") .refreshToken("Atzr|******************************") .endpoint("https://api.amazon.com/auth/o2/token") .build(); //For Grantless operations (Authorization API and Notifications API), use following code : /* LWAAuthorizationCredentials lwaAuthorizationCredentials = LWAAuthorizationCredentials.builder() .clientId("amzn1.application-*********************") .clientSecret("***********************************") .withScopes(SCOPE_NOTIFICATIONS_API, SCOPE_MIGRATION_API) .endpoint("https://api.amazon.com/auth/o2/token") .build(); */ //Create an instance of the Sellers API and call an operation : SellersApi sellersApi = new SellersApi.Builder() .lwaAuthorizationCredentials(lwaAuthorizationCredentials) .endpoint("https://sellingpartnerapi-na.amazon.com") // use Sandbox URL here if you would like to test your applications without affecting production data. .build(); try { GetMarketplaceParticipationsResponse result = sellersApi.getMarketplaceParticipations(); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling SellersApi#getMarketplaceParticipations"); e.printStackTrace(); } catch (LWAException e) { System.err.println("LWA Exception when calling SellersApi#getMarketplaceParticipations"); System.err.println(e.getErrorCode()); System.err.println(e.getErrorMessage()); e.printStackTrace(); } } }
Nachdem Sie den Code ausgeführt haben, führen Sie die main
-Klasse aus. Jetzt sollte Ihnen eine Liste der Marktplätze angezeigt werden, auf denen Ihr autorisierter Verkäufer verkaufen kann.
Sie können ähnliche Schritte für andere SP-APIs ausführen.
Updated 23 days ago