Tutorial: Automatice sus llamadas a SP-API mediante un SDK de Java
Automatice sus llamadas a la SP-API con el intercambio de tokens y la autenticación de Login with Amazon (LWA).
En este tutorial se describe cómo generar un SDK de Java con autenticación e intercambio de tokens Login with Amazon (LWA) para crear su aplicación sin problemas. Aprenderás los requisitos previos necesarios para crear el SDK de Java y también verás un ejemplo en el que se utiliza la API Selling Partner para vendedores y el generador de código Swagger.
En primer lugar, observe cómo funciona el proceso de autorización.
Tutorial
El siguiente tutorial le ayudará a configurar su propio SDK de Java para automatizar las llamadas a SP-API.
Requisitos
Para completar este tutorial, necesita los siguientes requisitos previos:
- Una aplicación híbrida o SP-API en estado de borrador o publicado
- Software de entorno de desarrollo integrado (IDE) (este tutorial usa Eclipse IDE en el sistema operativo Windows)
Para que tu aplicación pueda conectarse a la API de socios vendedores, debes registrarla y contar con la autorización de un socio vendedor. Si no tienes una aplicación híbrida o SP-API, sigue los pasos para registrarse como desarrollador, registre su solicitud, y Autorización de las aplicaciones de la API de los socios vendedores. Luego, vuelve a este tutorial.
A continuación, configura tu espacio de trabajo para el tutorial.
Paso 1. Configura tu espacio de trabajo
En primer lugar, tendrá que descargar los paquetes de software necesarios, descargar Swagger Code Generator y clonar el repositorio de modelos SP-API.
-
En tu disco local, crea un directorio para este proyecto y asígnale un nombre
SwaggerToCL
. -
Descargue las siguientes herramientas y póngalas a su disposición en su
$PATH
. -
Ejecute el siguiente comando para descargar el generador de código 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 -
Copiar
swagger-codegen-cli.jar
en tu directorio localC:\\SwaggerToCL
. -
En GitHub, ve a https://github.com/amzn/selling-partner-api-models/tree/main/models y utilice el siguiente comando para clonar el
selling-partner-api-models
repositorio a tu directorio localC:\\SwaggerToCL
.git clone https://github.com/amzn/selling-partner-api-models -
Navegue hasta el
selling-partner-api-models\models
carpeta en tu copia local del repositorio y copia todos los archivos JSON de las subcarpetas del modelo aC:\\SwaggerToCL
.El
selling-partner-api-models
el repositorio tiene dos directorios:- directorio de modelos - contiene todos los modelos de API para socios vendedores disponibles actualmente.
Nota
Los desarrolladores usan Swagger Codegen para generar bibliotecas de cliente a partir de estos modelos. Swagger CodeGen es un proyecto de código abierto que permite la generación automática de bibliotecas cliente de API (generación de SDK), archivos adjuntos de servidores y documentación a partir de una especificación de OpenAPI. Para obtener más información, consulte Swagger Codegen.
- directorio de clientes - contiene una biblioteca Java llamada
sellingpartner-api-aa-java
y una biblioteca de C# llamadasellingpartner-api-aa-csharp
con plantillas de Moustache para usar conswagger-codegen
para generar bibliotecas de cliente con funciones de autenticación y autorización incluidas. Elsellingpartner-api-documents-helper-java
la carpeta contiene clases auxiliares para documentos cifrados. Elsample-code
la carpeta contiene ejemplos de código Java para Token de datos restringidos (RDT).
Ahora que ha completado la configuración requerida, el siguiente paso es generar el SDK de Java con las clases de autenticación y autorización que se proporcionan en sellingpartner-api-aa-java
carpeta.
Paso 2. Genere el SDK de Java para las API de SP
En este paso, generará el SDK a partir de las plantillas de la carpeta selling-partner-api-models\clients\sellingpartner-api-aa-java
en tu copia local del repositorio. Esta carpeta contiene una biblioteca de autorización y autenticación, junto con plantillas personalizadas para el generador de código Swagger y un archivo de configuración para generar la versión correcta del SDK.
Para generar el SDK de Java, debes ejecutar el siguiente comando para cada archivo JSON de tu directorio 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
Por ejemplo, ejecute el siguiente comando para generar código Java para 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
Repita este paso para generar los SDK para cada una de las API de SP disponibles en directorio de modelos.
El SDK generado incluye las clases para configurar las credenciales de LWA y las usa para intercambiar tokens de LWA.
En los pasos siguientes, xx hace referencia a la última versión de la biblioteca AA. Consulte la léeme para obtener la versión más reciente.
Paso 3. Cree la biblioteca de la biblioteca de autenticación y autorización (AA)
Después de generar el SDK, cree la biblioteca AA.
- Navegue hasta el
selling-partner-api-models\clients\sellingpartner-api-aa-java
carpeta de tu copia local del repositorio y ejecutamvn package
. Esto genera una carpeta llamadatarget
. En esta carpeta hay unJAR
archivo llamadosellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar
(o con un nombre similar) y todas las dependencias requeridas. - Ejecuta el siguiente comando para instalar el archivo
JAR
en tu repositorio local de {{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
Puedes encontrar el actual groupId
, artifactId
, y version
valores cerca de la parte superior del pom.xml
archivo en el selling-partner-api-models\clients\sellingpartner-api-aa-java
carpeta.
Ejemplo:
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
Paso 4. Agregue la biblioteca como una dependencia del SDK
Para agregar la biblioteca como una dependencia, debe editar el pom.xml
archivo.
-
En su directorio local, navegue hasta
selling-partner-api-models/clients/sellingpartner-api-aa-java
y abre elpom.xml
archivo. -
Agregue el siguiente código como dependencia en el archivo.
<dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency> -
Guarda y cierra el archivo.
El siguiente paso es escribir la aplicación real y conectarse a la SP-API mediante el SDK de Java generado.
Paso 5. Conéctese a la API del socio vendedor mediante el SDK de Java generado
En este paso, te conectas a la API del socio vendedor mediante el SDK de Java generado. Estos pasos utilizan Eclipse IDE para importar el SDK generado y conectarte a la API de socios vendedores, pero puedes usar tu IDE preferido.
-
En {{0}}, en el menú Archivo, selecciona Abrir proyectos desde el sistema de archivos y, a continuación, importa el SDK de Java generado.
-
En
src/main/java
añadir unclass
para escribir tu código. -
Introduzca el código en el agregado
class
para configurar la siguiente instancia:- Credenciales de LWA (consulte Configure sus credenciales de LWA)
Nota
Nota: Si la ruta de clases no reconoce las clases en
JAR
, tendrás que añadir los archivostarget
que se crearon en la carpeta de {{2}}, que se encuentra en la carpeta SDK generada. -
Crea una instancia de la API de SDK generada y llama a las operaciones. Por ejemplo, consulta el siguiente código de ejemplo para conectarte a la API de socios vendedores para vendedores (siempre que hayas generado el SDK para esta 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(); } } }
Ahora que has ejecutado el código, ejecuta la main
para ver una lista de los sitios web en los que puede vender tu vendedor autorizado.
Puede seguir pasos similares para otras API de SP.
Updated 23 days ago