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õesswagger-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
-
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 -
Faça download das seguintes ferramentas.
- IDE software (this walkthrough uses Visual Studio IDE on Windows OS)
- GNU Wget
- Java versão 7 ou superior
-
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 -
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 -
Copie
swagger-codegen-cli.jar
em seu diretório localC:\\SPAPI_JavaScript_SDK
. -
In GitHub, go to
https://github.com/amzn/selling-partner-api-models/tree/main/models
and use the following command to clone theselling-partner-api-models
repository to your local directoryC:\\SPAPI_JavaScript_SDK
.git clone https://github.com/amzn/selling-partner-api-modelsNow 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.
-
Abra seu arquivo
package.json
e adicione o seguinte trecho para garantir quepackage.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/
esdk/
) sejam incluídos no pacote, enquanto os demais são ignorados. -
Navegue até o diretório
SellingPartnerAPISdkJavaScriptNode
em seu terminal ou prompt de comando. -
Execute o comando a seguir para criar o pacote:
npm packEste 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.
-
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 -
Configure um novo projeto Node.js para garantir um ambiente limpo.
npm init -y -
Siga as instruções para iniciar seu novo projeto. Aceite as opções padrão se elas corresponderem às suas preferências.
-
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.tgzObservaçã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órioSellingPartnerAPISdkJavaScriptNode
, 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.
-
Armazene suas credenciais de LWA em um arquivo
app.config.mjs
na raiz do projeto.touch app.config.mjs -
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.
-
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 -
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**********************************' ); })(); -
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.jsEsse 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 } } ] }
Updated 23 days ago