Tutorial: Automatizza le chiamate SP-API utilizzando un SDK Java
Automatizza le tue chiamate SP-API con lo scambio e l'autenticazione di token Login with Amazon (LWA).
Questo tutorial descrive come generare un SDK Java con lo scambio di token Login with Amazon (LWA) e l'autenticazione per creare la tua applicazione senza problemi. Scoprirai i prerequisiti necessari per creare l'SDK Java e visualizzerai anche un esempio utilizzando l'API Selling Partner per venditori e Swagger Code Generator.
Innanzitutto, dai un'occhiata a come funziona il processo di autorizzazione.
Tutorial
Il seguente tutorial ti aiuterà a configurare il tuo Java SDK per automatizzare le chiamate SP-API.
Prerequisiti
Per completare questo tutorial, sono necessari i seguenti prerequisiti:
- Un'app ibrida o SP-API in stato di bozza o pubblicata
- Software per l'ambiente di sviluppo integrato (IDE) (questa procedura dettagliata utilizza Eclipse IDE su sistema operativo Windows)
Prima che la tua applicazione possa connettersi all'API del partner di vendita, devi registrarla e deve essere autorizzata da un partner di vendita. Se non disponi di un'app ibrida o SP-API, segui i passaggi per registrati come sviluppatore, registra la tua candidatura, e Autorizzazione delle applicazioni Selling Partner API. Quindi, torna a questo tutorial.
Quindi, configura il tuo spazio di lavoro per il tutorial.
Fase 1. Configura il tuo spazio di lavoro
Innanzitutto, devi scaricare i pacchetti software richiesti, scaricare Swagger Code Generator e clonare il repository dei modelli SP-API.
-
Sul tuo disco locale, crea una directory per questo progetto e assegnagli un nome
SwaggerToCL
. -
Scarica i seguenti strumenti e rendili disponibili nel tuo
$PATH
. -
Esegui il seguente comando per scaricare Swagger Code Generator:
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 -
Copia
swagger-codegen-cli.jar
nella tua rubrica localeC:\\SwaggerToCL
. -
In GitHub, vai a https://github.com/amzn/selling-partner-api-models/tree/main/models e usa il seguente comando per clonare
selling-partner-api-models
repository nella tua directory localeC:\\SwaggerToCL
.git clone https://github.com/amzn/selling-partner-api-models -
Naviga fino alla
selling-partner-api-models\models
cartella nella copia locale del repository e copia tutti i file JSON dalle sottocartelle dei modelli inC:\\SwaggerToCL
.Le
selling-partner-api-models
il repository ha due directory:- elenco dei modelli - contiene tutti i modelli di API per i partner di vendita attualmente disponibili.
Nota
Gli sviluppatori utilizzano Codegen Swagger per generare librerie client da questi modelli. Swagger CodeGen è un progetto open source che consente la generazione automatica di librerie client API (generazione SDK), stub di server e documentazione a partire da una specifica OpenAPI. Per ulteriori informazioni, fare riferimento a Codegen Swagger.
- elenco clienti - contiene una libreria Java denominata
sellingpartner-api-aa-java
e una libreria C# denominatasellingpartner-api-aa-csharp
con modelli Moustache da utilizzare conswagger-codegen
per generare librerie client con funzionalità di autenticazione e autorizzazione incluse. Ilsellingpartner-api-documents-helper-java
la cartella contiene classi di supporto per documenti crittografati. Lasample-code
la cartella contiene esempi di codice java per Token di dati con restrizioni (RDT).
Ora che hai completato la configurazione richiesta, il passaggio successivo è generare l'SDK Java con le classi di autenticazione e autorizzazione fornite nel sellingpartner-api-aa-java
cartella.
Fase 2 Genera Java SDK per SP-API
In questo passaggio, generi l'SDK in base ai modelli nella cartella selling-partner-api-models\clients\sellingpartner-api-aa-java
nella tua copia locale del repository. Questa cartella contiene una libreria di autorizzazione e autenticazione, insieme a modelli personalizzati per Swagger Code Generator e un file di configurazione per generare la versione corretta dell'SDK.
Per generare l'SDK Java, devi eseguire il seguente comando per ogni file JSON nella tua directory locale:
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
Ad esempio, esegui il seguente comando per generare codice Java per 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
Ripeti questo passaggio per generare SDK per ciascuna delle API SP disponibili in elenco dei modelli.
L'SDK generato include le classi per configurare le credenziali LWA e le utilizza per scambiare token LWA.
Nei passaggi seguenti, xx si riferisce all'ultima versione della libreria AA. Fare riferimento al leggimi per ottenere l'ultima versione.
Fase 3. Crea la libreria Authentication/Authorization Library (AA)
Dopo aver generato l'SDK, crea la libreria AA.
- Naviga fino alla
selling-partner-api-models\clients\sellingpartner-api-aa-java
cartella della tua copia locale del repository ed eseguimvn package
. Questo genera una cartella denominatatarget
. In questa cartella c'è unJAR
file denominatosellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar
(o con un nome simile) e tutte le dipendenze richieste. - Esegui il seguente comando per installare il file
JAR
nella tua repository locale {{1}}.
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
Puoi trovare l'attuale groupId
, artifactId
, e version
valori nella parte superiore del pom.xml
file nel selling-partner-api-models\clients\sellingpartner-api-aa-java
cartella.
Esempio:
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
Fase 4. Aggiungi la libreria come dipendenza dell'SDK
Per aggiungere la libreria come dipendenza, è necessario modificare pom.xml
fascicolo.
-
Nella tua directory locale, vai a
selling-partner-api-models/clients/sellingpartner-api-aa-java
e apri ilpom.xml
fascicolo. -
Aggiungi il codice seguente come dipendenza nel file.
<dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency> -
Salva e chiudi il file.
Il passaggio successivo consiste nello scrivere l'applicazione effettiva e connettersi all'SP-API utilizzando l'SDK Java generato.
Fase 5. Connettiti all'API Selling Partner utilizzando l'SDK Java generato
In questo passaggio, ti connetti all'API Selling Partner utilizzando il tuo Java SDK generato. Questi passaggi utilizzano IDE Eclipse per importare l'SDK generato e connetterti all'API Selling Partner, ma puoi usare il tuo IDE preferito.
-
In {{0}}, nel menu File, scegli Apri progetti dal file system e quindi importa l'SDK Java generato.
-
Nel
src/main/java
aggiungere unclass
per scrivere il tuo codice. -
Inserisci il codice nell'aggiunto
class
per configurare la seguente istanza:- Credenziali LWA (fare riferimento a Configura le tue credenziali LWA)
Nota
Nota: se il percorso della classe non riconosce le classi in
JAR
, dovrai aggiungere i filetarget
che sono stati creati nella cartella {{2}}, che si trova nella cartella SDK generata. -
Crea un'istanza dell'API SDK generata e chiama le operazioni. Per un esempio, fai riferimento al seguente codice di esempio per la connessione all'API Selling Partner per venditori (a condizione che tu abbia generato l'SDK per questa API).
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(); } } }
Ora che hai eseguito il codice, esegui main
e dovresti vedere un elenco di marketplace in cui il tuo venditore autorizzato può vendere.
Puoi seguire passaggi simili per altre API SP.
Updated 23 days ago