Tutorial: Automatice sus llamadas a SP-API mediante un SDK de JavaScript para Node.js

Automatice sus llamadas a la SP-API con el intercambio de tokens y la autenticación de Login with Amazon (LWA).

Este tutorial le proporciona todos los detalles necesarios para generar un SDK de JavaScript para Node.js 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 JavaScript para Node.js 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.

El SDK de JavaScript SP-API para Node.js está diseñado para la integración del lado del servidor con la API de socios vendedores de Amazon. Este tutorial trata sobre la integración y la realización de llamadas a la SP-API, centrándose en la aplicación práctica, para que puedas ejecutar llamadas a la API e integrar las capacidades de mercado de Amazon directamente en tus procesos del lado del servidor.

Tutorial

El siguiente tutorial le ayudará a configurar su propio SDK de JavaScript para Node.js a fin de 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)
  • Java versión 7 o superior
  • swagger-codegen-cli-2.4.29
  • Node.js v18 o superior

❗️

Advertencia

Debes usar swagger-codegen-cli-2.4.29. Si usas swagger-codegen-cli versiones distintas de 2.4.29, se producirá un error al generar el SDK. El uso de una versión incorrecta podría provocar problemas mayores en el proceso de integración.

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

  1. En tu disco local, crea un directorio para este proyecto y asígnale un nombre SPAPI_Javascript_SDKy navegue hasta el nuevo directorio.

    mkdir SPAPI_JavaScript_SDK cd SPAPI_JavaScript_SDK
  2. Descarga las siguientes herramientas.

  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.29/swagger-codegen-cli-2.4.29.jar
  4. Use el siguiente comando para obtener el archivo y cambiar los permisos para hacerlo ejecutable.

    chmod 744 swagger-codegen-cli-2.4.29.jar
  5. Copiar swagger-codegen-cli.jar en tu directorio local C:\\SPAPI_JavaScript_SDK.

  6. 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:\\SPAPI_JavaScript_SDK.

    git clone https://github.com/amzn/selling-partner-api-models

    Ahora que has completado la configuración necesaria, el siguiente paso es generar el SDK de Java con las clases de autenticación y autorización proporcionadas en la carpeta sellingpartner-api-javascript.

Paso 2. Genere un SDK de JavaScript para Node.js con autenticación e intercambio de tokens LWA

Navegue hasta el SellingPartnerAPISdkJavaScriptNode/src directorio. En el src directorio encuentra el generate-js-sdk.sh shell archivo de script. Ejecute el siguiente script en la línea de comandos:

cd SellingPartnerAPISdkJavaScriptNode/src ./generate-js-sdk.sh -j ../../swagger-codegen-cli-2.4.29.jar

Ahora puede ver el models y sdk directorios, que contienen los modelos de API y el SDK de JavaScript respectivamente, en la raíz del paquete.

Esta carpeta proporciona clases auxiliares para generar un token de acceso para las API de los socios vendedores de Amazon. Está diseñada para usarse con las bibliotecas de clientes de las API de socios vendedores generadas por Swagger Codegen usando la biblioteca RestSharp. También se puede integrar en proyectos personalizados.

Paso 3. Crea un paquete npm local

Empaquete su SDK para usarlo en varios proyectos locales sin publicar el SDK en el registro público de npm.

  1. Abre tu package.json archiva y agrega lo siguiente para garantizar que package.json está configurado correctamente para incluir los directorios necesarios. :

    "files": [ "src/helper/", "sdk/" ]

    Este paso garantiza que solo los directorios especificados y su contenido (por ejemplo, src/helper/ y sdk/) se incluyen en el paquete y las demás se ignoran.

  2. Navegue hasta el SellingPartnerAPISdkJavaScriptNode directorio en su terminal o línea de comandos.

  3. Ejecute el siguiente comando para crear el paquete:

    npm pack

    Este comando crea un tarball (archivo TGZ) en el directorio de su proyecto, llamado amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz o similar, según el nombre y la versión del paquete. Incluye todos los archivos necesarios de su proyecto, creando de manera efectiva un paquete local que se puede instalar como cualquier paquete npm publicado.

Paso 4. Crea un nuevo proyecto usando el paquete npm local

Ahora puede crear un nuevo proyecto que utilice el paquete npm local. Con este enfoque, puede probar el SDK en un entorno similar al que encontrarán los desarrolladores finales.

  1. Ingresa el siguiente comando para crear un nuevo directorio para el nuevo proyecto. En este ejemplo se presupone que su directorio actual es SellingPartnerAPISdkJavaScriptNode/src:

    cd ../../ mkdir MyNewSPAPIProject cd MyNewSPAPIProject
  2. Configure un nuevo proyecto de Node.js para garantizar un entorno limpio.

    npm init -y
  3. Sigue las instrucciones para inicializar tu nuevo proyecto. Acepte las opciones predeterminadas si coinciden con sus preferencias.

  4. Instale el paquete npm local que creó en Paso 3. Crea un paquete npm local en este nuevo proyecto. Para el siguiente comando, sustituya el marcador ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz con la ruta real a tu archivo TGZ. Este paso es crucial porque simula cómo otros desarrolladores integrarán tu SDK en sus proyectos.

    npm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz

    📘

    Nota

    El camino hacia tu .tgz el archivo puede ser absoluto o relativo, según su directorio de trabajo actual. Por ejemplo, si su .tgz el archivo está en SellingPartnerAPISdkJavaScriptNode directorio, tu comando es npm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz.

    Después de completar estos pasos, su paquete aparecerá como una dependencia en su nuevo proyecto package.json, y puede importar las funcionalidades como lo haría normalmente.

Paso 5. Conéctate a la API del socio vendedor mediante el SDK de JavaScript generado para Node.js

Con la autenticación configurada, ya está listo para interactuar con los puntos finales de SP-API.

  1. Guarde sus credenciales de LWA en un app.config.mjs archivo dentro de la raíz del proyecto.

    touch app.config.mjs
  2. Defina sus credenciales en app.config.mjs de la siguiente manera:

    export const AppConfig = { lwaClientId: "< LWA client ID >", lwaClientSecret: "< LWA client secret >", lwaRefreshToken: "< LWA refresh token >", }

    🚧

    Advertencia

    Nunca envíe este archivo a su sistema de control de versiones, ya que contiene información confidencial. Asegúrese de que estas credenciales de LWA estén almacenadas de forma segura en un formato cifrado.

  3. Crea un nuevo archivo con el nombre index.js en el directorio raíz de su proyecto e inserte el siguiente script, que inicia una llamada a un punto final de SP-API específico y registra la respuesta en la consola.

    touch index.js
  4. Copia y pega lo siguiente en index.js:

    import { AppConfig } from './app.config.mjs'; import { LwaAuthClient } from '@amzn/testsellingpartnerjavascriptapilwalib/src/helper/LwaAuthClient.mjs'; import { SellersApi, ApiClient as SellersApiClient, } from '@amzn/testsellingpartnerjavascriptapilwalib/sdk/src/sellers/index.js'; (async () => { const lwaClient = new LwaAuthClient( AppConfig.lwaClientId, AppConfig.lwaClientSecret, AppConfig.lwaRefreshToken ); const sellerApiClient = new SellersApiClient( 'https://sellingpartnerapi-fe.amazon.com' ); const sellerApi = new SellersApi(sellerApiClient); sellerApiClient.applyXAmzAccessTokenToRequest( await lwaClient.getAccessToken() ); const participations = await sellerApi.getMarketplaceParticipations(); console.log( JSON.stringify(participations, null, ' ') + '\n**********************************' ); })();
  5. Ejecuta el script: ejecuta el siguiente comando en tu terminal o línea de comandos para iniciar una solicitud GET al punto final de la API del vendedor:

    node index.js

    Este comando ejecuta el script, inicia la llamada a la API y muestra los resultados en la consola.

    Salida esperada:

    { "payload": [ { "marketplace": { "id": "xxxxx", "countryCode": "JP", "name": "Amazon.co.jp", "defaultCurrencyCode": "JPY", "defaultLanguageCode": "ja_JP", "domainName": "www.amazon.jp“ }, "participation": { "isParticipating": true, "hasSuspendedListings": false } } ] }

¿Te ha ayudado esta página?