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.

  1. En tu disco local, crea un directorio para este proyecto y asígnale un nombre SwaggerToCL.

  2. Descargue las siguientes herramientas y póngalas a su disposición en su $PATH.

  3. 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
  4. Copiar swagger-codegen-cli.jar en tu directorio local C:\\SwaggerToCL.

  5. 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 local C:\\SwaggerToCL.

    git clone https://github.com/amzn/selling-partner-api-models
  6. 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 a C:\\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.

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.

  1. Navegue hasta el selling-partner-api-models\clients\sellingpartner-api-aa-java carpeta de tu copia local del repositorio y ejecuta mvn package. Esto genera una carpeta llamada target. En esta carpeta hay un JAR archivo llamado sellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar (o con un nombre similar) y todas las dependencias requeridas.
  2. 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.

  1. En su directorio local, navegue hasta selling-partner-api-models/clients/sellingpartner-api-aa-java y abre el pom.xml archivo.

  2. 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>
  3. 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.

  1. En {{0}}, en el menú Archivo, selecciona Abrir proyectos desde el sistema de archivos y, a continuación, importa el SDK de Java generado.

  2. En src/main/java añadir un class para escribir tu código.

  3. Introduzca el código en el agregado class para configurar la siguiente instancia:

    📘

    Nota

    Nota: Si la ruta de clases no reconoce las clases en JAR, tendrás que añadir los archivos target que se crearon en la carpeta de {{2}}, que se encuentra en la carpeta SDK generada.

  4. 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.


¿Te ha ayudado esta página?