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 usasswagger-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
-
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 -
Descarga las siguientes herramientas.
- Software IDE (en este tutorial se utiliza Visual Studio IDE (en el sistema operativo Windows)
- GNU Wget
- Java versión 7 o superior
-
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 -
Use el siguiente comando para obtener el archivo y cambiar los permisos para hacerlo ejecutable.
chmod 744 swagger-codegen-cli-2.4.29.jar -
Copiar
swagger-codegen-cli.jar
en tu directorio localC:\\SPAPI_JavaScript_SDK
. -
En GitHub, ve a
https://github.com/amzn/selling-partner-api-models/tree/main/models
y utilice el siguiente comando para clonar elselling-partner-api-models
repositorio a tu directorio localC:\\SPAPI_JavaScript_SDK
.git clone https://github.com/amzn/selling-partner-api-modelsAhora 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.
-
Abre tu
package.json
archiva y agrega lo siguiente para garantizar quepackage.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/
ysdk/
) se incluyen en el paquete y las demás se ignoran. -
Navegue hasta el
SellingPartnerAPISdkJavaScriptNode
directorio en su terminal o línea de comandos. -
Ejecute el siguiente comando para crear el paquete:
npm packEste 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.
-
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 -
Configure un nuevo proyecto de Node.js para garantizar un entorno limpio.
npm init -y -
Sigue las instrucciones para inicializar tu nuevo proyecto. Acepte las opciones predeterminadas si coinciden con sus preferencias.
-
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.tgzNota
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á enSellingPartnerAPISdkJavaScriptNode
directorio, tu comando esnpm 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.
-
Guarde sus credenciales de LWA en un
app.config.mjs
archivo dentro de la raíz del proyecto.touch app.config.mjs -
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.
-
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 -
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**********************************' ); })(); -
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.jsEste 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 } } ] }
Updated 23 days ago