Tutorial: como automatizar suas chamadas à SP-API usando o SDK em JavaScript para Node.js

Automatize suas chamadas à SP-API com a troca e autenticação de tokens do Login com a Amazon (LWA).

Este tutorial oferece todos os detalhes necessários para gerar um SDK em JavaScript para Node.js com troca de token e autenticação de Login com a Amazon (LWA) para criar seu aplicativo sem interrupções. Você conhecerá os pré-requisitos necessários para criar o SDK em JavaScript para Node.js e também verá um exemplo de uso da API do parceiro de vendas para vendedores e do gerador de código do Swagger.

O SDK JavaScript da SP-API para Node.js foi projetado para a integração no lado do servidor com a API do parceiro de vendas da Amazon. Este tutorial aborda a integração e execução de chamadas à SP-API com foco na aplicação prática, permitindo que você execute chamadas à API e integre as funcionalidades do site da Amazon diretamente aos seus processos no lado do servidor.

Tutorial

O tutorial a seguir ajudará você a configurar seu próprio SDK JavaScript para Node.js para automatizar chamadas à SP-API.

Pré-requisitos

Para concluir este tutorial, você precisa dos seguintes pré-requisitos:

  • Um aplicativo híbrido ou SP-API em estado de rascunho ou publicado
  • Software de ambiente de desenvolvimento integrado (IDE)
  • Java versão 7 ou superior
  • swagger-codegen-cli-2.4.29
  • Node.js v18 ou superior

❗️

Aviso

É necessário usar swagger-codegen-cli-2.4.29. Se você usa versões swagger-codegen-cli diferentes de 2.4.29, a geração do SDK falhará. Usar a versão errada pode causar problemas maiores no processo de integração.

Before your application can connect to the Selling Partner API, you must register it, and it must be authorized by a selling partner. If you do not have a hybrid or SP-API app, follow the steps to register as a developer, register your application, and Authorizing Selling Partner API applications. Then, return to this tutorial.

Em seguida, configure seu espaço de trabalho para o tutorial.

Etapa 1. Configure o espaço de trabalho

  1. Em sua unidade local, crie um diretório para esse projeto, com o nome SPAPI_JavaScript_SDK, e navegue até o novo diretório.

    mkdir SPAPI_JavaScript_SDK cd SPAPI_JavaScript_SDK
  2. Faça download das seguintes ferramentas.

  3. Execute o seguinte comando para baixar o gerador de código do Swagger:

    wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.29/swagger-codegen-cli-2.4.29.jar
  4. Use o comando a seguir para obter o arquivo e alterar as permissões para torná-lo executável.

    chmod 744 swagger-codegen-cli-2.4.29.jar
  5. Copie swagger-codegen-cli.jar em seu diretório local C:\\SPAPI_JavaScript_SDK.

  6. In GitHub, go to https://github.com/amzn/selling-partner-api-models/tree/main/models and use the following command to clone the selling-partner-api-models repository to your local directory C:\\SPAPI_JavaScript_SDK.

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

    Now that you have completed the required setup, the next step is to generate the JavaScript SDK for Node.js with the authentication and authorization classes provided in the sellingpartner-api-javascript folder.

Etapa 2. Gere um SDK JavaScript para Node.js com autenticação e troca de tokens do LWA

Acesse o diretório SellingPartnerAPISdkJavaScriptNode/src. Em src, encontre o arquivo de script generate-js-sdk.sh shell. Execute o seguinte script na linha de comando:

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

Agora você pode ver os diretórios models e sdk, que contêm os modelos da API e o SDK JavaScript, respectivamente, na raiz do seu pacote.

This folder provides helper classes to generate an access token for Amazon Selling Partner APIs. It is intended for use with the Selling Partner API Client Libraries generated by Swagger Codegen using the RestSharp library. It can also be integrated into custom projects.

Etapa 3. Crie um pacote npm local

Empacote seu SDK para usá-lo em vários projetos locais sem publicar o SDK no registro público do npm.

  1. Abra seu arquivo package.json e adicione o seguinte trecho para garantir que package.json esteja configurado corretamente, incluindo os diretórios necessários.

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

    Esta etapa garante que somente os diretórios especificados e seus conteúdos (por exemplo, src/helper/ e sdk/) sejam incluídos no pacote, enquanto os demais são ignorados.

  2. Navegue até o diretório SellingPartnerAPISdkJavaScriptNode em seu terminal ou prompt de comando.

  3. Execute o comando a seguir para criar o pacote:

    npm pack

    Este comando cria um tarball (arquivo TGZ) no diretório do seu projeto, com o nome amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz ou similar, baseado no nome e na versão do seu pacote. Ele inclui todos os arquivos necessários do seu projeto, criando efetivamente um pacote local que pode ser instalado como qualquer pacote npm publicado.

Etapa 4. Crie um novo projeto usando o pacote npm local

Agora você pode criar um novo projeto que usa o pacote npm local. Com essa abordagem, você pode testar o SDK em um ambiente semelhante ao que os desenvolvedores finais encontrarão.

  1. Insira o comando a seguir para criar um novo diretório para o novo projeto. Este exemplo pressupõe que seu diretório atual seja SellingPartnerAPISdkJavaScriptNode/src:

    cd ../../ mkdir MyNewSPAPIProject cd MyNewSPAPIProject
  2. Configure um novo projeto Node.js para garantir um ambiente limpo.

    npm init -y
  3. Siga as instruções para iniciar seu novo projeto. Aceite as opções padrão se elas corresponderem às suas preferências.

  4. Install the local npm package you created in Step 3. Create a local npm package into this new project. For the following command, replace the placeholder ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz with the actual path to your TGZ file. This step is crucial because it simulates how other developers will integrate your SDK into their projects.

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

    📘

    Observação

    O caminho para o seu arquivo .tgz pode ser absoluto ou relativo, com base no seu diretório de trabalho atual. Por exemplo, se o seu arquivo .tgz estiver no diretório SellingPartnerAPISdkJavaScriptNode, seu comando será npm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz.

    Depois de concluir essas etapas, seu pacote será listado como uma dependência no package.json do seu novo projeto e você poderá importar funcionalidades como faria normalmente.

Etapa 5. Conecte-se à API do parceiro de vendas usando o SDK em JavaScript gerado para Node.js

Com a autenticação configurada, você já poderá interagir com os endpoints da SP-API.

  1. Armazene suas credenciais de LWA em um arquivo app.config.mjs na raiz do projeto.

    touch app.config.mjs
  2. Defina suas credenciais dentro de app.config.mjs da seguinte forma:

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

    🚧

    Atenção

    Nunca faça commit deste arquivo no seu sistema de controle de versão, pois ele contém informações confidenciais. Certifique-se de que essas credenciais do LWA sejam armazenadas com segurança em um formato criptografado.

  3. Crie um novo arquivo chamado index.js no diretório raiz do seu projeto e insira o script a seguir, que inicia uma chamada para um endpoint específico da SP-API e registra a resposta no console.

    touch index.js
  4. Copie e cole o seguinte trecho em 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. Execute o script: execute o seguinte comando em seu terminal ou prompt de comando para iniciar uma solicitação GET ao endpoint da API de vendedores:

    node index.js

    Esse comando executa seu script, inicia a chamada à API e exibe os resultados em seu console.

    Saída 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 } } ] }

Esta página ajudou você?