Tutorial: como automatizar suas chamadas à SP-API usando um SDK em Java
Automatize suas chamadas à SP-API com a troca e autenticação de tokens do Login com a Amazon (LWA).
Este tutorial descreve como gerar um SDK Java com a troca e autenticação de tokens Login with Amazon (LWA) para criar seu aplicativo sem problemas. Você aprenderá os pré-requisitos necessários para criar o Java SDK e também verá um exemplo usando a API Selling Partner for Sellers e o Swagger Code Generator.
Primeiro, veja como o processo de autorização funciona.
Tutorial
O tutorial a seguir ajudará você a configurar seu próprio Java SDK para automatizar chamadas de 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) (este passo a passo usa o Eclipse IDE no sistema operacional Windows)
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
Primeiro, você precisará baixar os pacotes de software necessários, baixar o Swagger Code Generator e clonar o repositório de modelos SP-API.
-
Em sua unidade local, crie um diretório para esse projeto e nomeie-o
SwaggerToCL
. -
Baixe as seguintes ferramentas e disponibilize-as em seu
$PATH
. -
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.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar -
Copie
swagger-codegen-cli.jar
em seu diretório localC:\\SwaggerToCL
. -
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 directoryC:\\SwaggerToCL
.git clone https://github.com/amzn/selling-partner-api-models -
Navegue até o
selling-partner-api-models\models
pasta em sua cópia local do repositório e copie todos os arquivos JSON das subpastas do modelo emC:\\SwaggerToCL
.The
selling-partner-api-models
repository has two directories:- models directory - contains all the currently available Selling Partner API models.
Observação
Developers use Swagger Codegen to generate client libraries from these models. Swagger CodeGen is an open source project which enables automatic generation of API client libraries (SDK generation), server stubs, and documentation from an OpenAPI specification. For more information, refer to Swagger Codegen.
- clients directory - contains a Java library named
sellingpartner-api-aa-java
and a C# library namedsellingpartner-api-aa-csharp
with Mustache templates for use withswagger-codegen
to generate client libraries with authentication and authorization functionality included. Thesellingpartner-api-documents-helper-java
folder contains helper classes for encrypted documents. Thesample-code
folder contains java code examples for the Restricted Data Token (RDT).
Now that you have completed the required setup, the next step is to generate the Java SDK with the authentication and authorization classes provided in the sellingpartner-api-aa-java
folder.
Etapa 2. Gere o Java SDK para SP-APIs
Nesta etapa, você gera o SDK com base nos modelos na pasta selling-partner-api-models\clients\sellingpartner-api-aa-java
em sua cópia local do repositório. Essa pasta contém uma biblioteca de autorização e autenticação, além de modelos personalizados para o Swagger Code Generator e um arquivo de configuração para gerar a versão correta do SDK.
Para gerar o Java SDK, você precisa executar o seguinte comando para cada arquivo JSON em seu diretório 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 exemplo, execute o seguinte comando para gerar 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
Repeat this step to generate SDKs for each of the SP-APIs available in the models directory.
O SDK gerado inclui as classes para configurar suas credenciais de LWA e as usa para trocar tokens LWA.
In the following steps, x.x refers to the latest version of the AA library. Refer to the readme to get the latest version.
Etapa 3. Crie a biblioteca da Biblioteca de Autenticação/Autorização (AA)
Depois de gerar o SDK, crie a biblioteca AA.
- Navegue até o
selling-partner-api-models\clients\sellingpartner-api-aa-java
pasta da sua cópia local do repositório e executemvn package
. Isso gera uma pasta chamadatarget
. Nesta pasta está umJAR
arquivo chamadosellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar
(ou com nome semelhante) e todas as dependências necessárias. - Execute o comando a seguir para instalar o arquivo
JAR
em seu repositório {{1}} local.
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
Você pode encontrar o real groupId
, artifactId
, e version
valores próximos ao topo do pom.xml
arquivo no selling-partner-api-models\clients\sellingpartner-api-aa-java
pasta.
Por exemplo:
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
Etapa 4. Adicione a biblioteca como uma dependência do SDK
Para adicionar a biblioteca como uma dependência, você precisa editar o pom.xml
arquivo.
-
Em seu diretório local, navegue até
selling-partner-api-models/clients/sellingpartner-api-aa-java
e abra opom.xml
arquivo. -
Adicione o código a seguir como uma dependência no arquivo.
<dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency> -
Salve e feche o arquivo.
A próxima etapa é escrever o aplicativo real e conectar-se à SP-API usando o Java SDK gerado.
Etapa 5. Conecte-se à API do parceiro de vendas usando o Java SDK gerado
In this step, you connect to the Selling Partner API using your generated Java SDK. These steps use Eclipse IDE to import the generated SDK and connect to the Selling Partner API, but you can use your preferred IDE.
-
Em {{0}}, no menu Arquivo, clique em Abrir projetos do sistema de arquivos e, em seguida, importe o SDK gerado em Java.
-
Em
src/main/java
adicionar umclass
para escrever seu código. -
Insira o código no campo adicionado
class
para configurar a seguinte instância:- LWA credentials (refer to Configure your LWA credentials)
Observação
Observação: se o caminho da classe não reconhecer as classes no
JAR
, você precisará adicionar os arquivostarget
criados na pasta {{2}}, localizada na pasta do SDK gerado. -
Crie uma instância da API SDK gerada e chame as operações. Por exemplo, consulte o código de exemplo a seguir para se conectar à API do parceiro de vendas para vendedores (desde que você tenha gerado o SDK para essa 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(); } } }
Agora que você executou o código, execute a classe main
. Você verá uma lista de sites nos quais seu vendedor autorizado pode vender.
Você pode seguir etapas semelhantes para outras SP-APIs.
Updated 23 days ago