Tutoriel : Automatisez vos appels SP-API à l'aide d'un SDK Java
Automatisez vos appels SP-API grâce à l'échange de jetons et à l'authentification Login with Amazon (LWA).
Ce didacticiel explique comment générer un SDK Java avec l'échange de jetons Login with Amazon (LWA) et l'authentification pour créer votre application de manière fluide. Vous découvrirez les prérequis requis pour créer le SDK Java et vous verrez également un exemple utilisant l'API Selling Partner pour les vendeurs et le générateur de code Swagger.
Tout d'abord, regardez comment fonctionne le processus d'autorisation.
Didacticiel
Le didacticiel suivant vous aidera à configurer votre propre SDK Java pour automatiser les appels SP-API.
Conditions préalables
Pour terminer ce didacticiel, vous devez remplir les prérequis suivants :
- Une application hybride ou SP-API en état de brouillon ou de publication
- Logiciel d'environnement de développement intégré (IDE) (cette procédure pas à pas utilise Eclipse IDE sur le système d'exploitation Windows)
Avant que votre application puisse se connecter à l'API Selling Partner, vous devez l'enregistrer et elle doit être autorisée par un partenaire commercial. Si vous ne possédez pas d'application hybride ou SP-API, suivez les étapes s'inscrire en tant que développeur, enregistrez votre candidature, et Autorisation des applications d'API pour les partenaires de vente. Revenez ensuite à ce didacticiel.
Configurez ensuite votre espace de travail pour le didacticiel.
Étape 1 Configurez votre espace de travail
Tout d'abord, vous devez télécharger les packages logiciels requis, télécharger Swagger Code Generator et cloner le référentiel de modèles SP-API.
-
Sur votre disque local, créez un répertoire pour ce projet et nommez-le
SwaggerToCL
. -
Téléchargez les outils suivants et mettez-les à disposition dans votre
$PATH
. -
Exécutez la commande suivante pour télécharger le générateur de code Swagger :
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 -
Copier
swagger-codegen-cli.jar
dans votre répertoire localC:\\SwaggerToCL
. -
Sur GitHub, rendez-vous sur https://github.com/amzn/selling-partner-api-models/tree/main/models et utilisez la commande suivante pour cloner le
selling-partner-api-models
référentiel dans votre répertoire localC:\\SwaggerToCL
.git clone https://github.com/amzn/selling-partner-api-models -
Naviguez jusqu'au
selling-partner-api-models\models
dossier dans votre copie locale du référentiel et copiez tous les fichiers JSON des sous-dossiers des modèles dansC:\\SwaggerToCL
.Le
selling-partner-api-models
le référentiel possède deux répertoires :- répertoire de modèles - contient tous les modèles d'API des partenaires de vente actuellement disponibles.
Remarque
Les développeurs utilisent Swagger Codegen pour générer des bibliothèques clientes à partir de ces modèles. Swagger CodeGen est un projet open source qui permet la génération automatique de bibliothèques clientes d'API (génération de SDK), de stubs de serveur et de documentation à partir d'une spécification OpenAPI. Pour plus d'informations, reportez-vous à Swagger Codegen.
- annuaire des clients - contient une bibliothèque Java nommée
sellingpartner-api-aa-java
et une bibliothèque C# nomméesellingpartner-api-aa-csharp
avec des modèles de moustache à utiliser avecswagger-codegen
pour générer des bibliothèques clientes avec des fonctionnalités d'authentification et d'autorisation incluses. Lesellingpartner-api-documents-helper-java
le dossier contient des classes d'assistance pour les documents chiffrés. Lesample-code
le dossier contient des exemples de code Java pour Jeton de données restreint (RDT).
Maintenant que vous avez terminé la configuration requise, l'étape suivante consiste à générer le SDK Java avec les classes d'authentification et d'autorisation fournies dans sellingpartner-api-aa-java
dossier.
Étape 2 Générer un SDK Java pour les API SP
Au cours de cette étape, vous générez le SDK en fonction des modèles du dossier selling-partner-api-models\clients\sellingpartner-api-aa-java
dans votre copie locale du référentiel. Ce dossier contient une bibliothèque d'autorisation et d'authentification, ainsi que des modèles personnalisés pour le générateur de code Swagger et un fichier de configuration permettant de générer la version correcte du SDK.
Pour générer le SDK Java, vous devez exécuter la commande suivante pour chaque fichier JSON de votre répertoire local :
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
Par exemple, exécutez la commande suivante pour générer du code Java pour 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
Répétez cette étape pour générer des SDK pour chacune des API SP disponibles dans le répertoire de modèles.
Le SDK généré inclut les classes permettant de configurer vos informations d'identification LWA et les utilise pour échanger des jetons LWA.
Au cours des étapes suivantes, x.x fait référence à la dernière version de la bibliothèque AA. Reportez-vous à lisez-moi pour obtenir la dernière version.
Étape 3 Création de la bibliothèque d'authentification/autorisation (AA)
Après avoir généré le SDK, créez la bibliothèque AA.
- Naviguez jusqu'au
selling-partner-api-models\clients\sellingpartner-api-aa-java
dossier de votre copie locale du référentiel et exécutezmvn package
. Cela génère un dossier nommétarget
. Dans ce dossier se trouve unJAR
fichier nommésellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar
(ou portant un nom similaire) et toutes les dépendances requises. - Exécutez la commande suivante pour installer le fichier
JAR
dans votre référentiel {{1}} local.
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
Vous pouvez trouver le véritable groupId
, artifactId
, et version
valeurs situées en haut de pom.xml
fichier dans selling-partner-api-models\clients\sellingpartner-api-aa-java
dossier.
Exemple :
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
Étape 4 Ajouter la bibliothèque en tant que dépendance du SDK
Pour ajouter la bibliothèque en tant que dépendance, vous devez modifier pom.xml
dossier.
-
Dans votre répertoire local, accédez à
selling-partner-api-models/clients/sellingpartner-api-aa-java
et ouvrez lepom.xml
dossier. -
Ajoutez le code suivant en tant que dépendance dans le fichier.
<dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency> -
Enregistrez et fermez le fichier.
L'étape suivante consiste à écrire l'application proprement dite et à se connecter à l'API SP à l'aide du SDK Java généré.
Étape 5 Connectez-vous à l'API Selling Partner à l'aide du SDK Java généré
Au cours de cette étape, vous vous connectez à l'API Selling Partner à l'aide du SDK Java que vous avez généré. Ces étapes utilisent IDE Eclipse pour importer le SDK généré et vous connecter à l'API Selling Partner, mais vous pouvez utiliser votre IDE préféré.
-
Dans {{0}}, dans le menu Dossier, sélectionnez Ouvrir des projets à partir du système de fichiers, puis importez le SDK Java généré.
-
Dans
src/main/java
ajouter unclass
pour écrire votre code. -
Entrez le code dans le champ ajouté
class
pour configurer l'instance suivante :- Informations d'identification LWA (reportez-vous à Configurez vos informations d'identification LWA)
Remarque
Remarque : si le chemin de classe ne reconnaît pas les classes dans
JAR
, vous devez ajouter les fichierstarget
créés dans le dossier {{2}}, situé dans le dossier SDK généré. -
Créez une instance de l'API SDK générée et appelez les opérations. À titre d'exemple, reportez-vous à l'exemple de code suivant pour vous connecter à l'API Selling Partner pour les vendeurs (à condition que vous ayez généré le SDK pour cette 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(); } } }
Maintenant que vous avez exécuté le code, exécutez la classe main
pour afficher une liste des sites de vente sur lesquels votre vendeur autorisé peut vendre.
Vous pouvez suivre des étapes similaires pour les autres API SP.
Updated 23 days ago