チュートリアル:Java SDKを使用してSP-API呼び出しを自動化する
Amazonアカウントでログイン(LWA)トークンの交換と認証により、SP-API呼び出しを自動化します。
このチュートリアルでは、Login with Amazon (LWA) トークンの交換と認証を使用して Java SDK を生成し、アプリケーションをシームレスに構築する方法について説明します。Java SDK を構築するために必要な前提条件について学び、販売者向け販売パートナー API と Swagger コードジェネレーターの使用例も紹介します。
まず、承認プロセスの仕組みを見てみましょう。
チュートリアル
次のチュートリアルは、SP-API 呼び出しを自動化するための独自の Java SDK の設定に役立ちます。
前提条件
このチュートリアルを完了するには、次の前提条件が必要です。
- ドラフトまたは公開状態のハイブリッドアプリまたはSP-APIアプリ
- 統合開発環境 (IDE) ソフトウェア (このチュートリアルでは Windows OS 上の Eclipse IDE を使用します)
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.
次に、チュートリアル用のワークスペースを設定します。
ステップ1. ワークスペースをセットアップします。
まず、必要なソフトウェアパッケージをダウンロードし、Swagger Code Generator をダウンロードして、SP-API モデルリポジトリのクローンを作成する必要があります。
-
ローカルドライブに、このプロジェクトのディレクトリを作成して名前を付けます
SwaggerToCL
。 -
次のツールをダウンロードして、あなたのツールで利用できるようにしてください
$PATH
。 -
次のコマンドを実行してSwagger Code Generatorをダウンロードします。
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 -
swagger-codegen-cli.jar
をローカルディレクトリC:\\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 -
に移動します
selling-partner-api-models\models
リポジトリのローカルコピーにあるフォルダー、およびすべての JSON ファイルをモデルのサブフォルダーからにコピーします。C:\\SwaggerToCL
。The
selling-partner-api-models
repository has two directories:- models directory - contains all the currently available Selling Partner API models.
注
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.
ステップ 2:SP API 用の Java SDK を生成する
このステップでは、フォルダー内のテンプレートに対して SDK を生成します。 selling-partner-api-models\clients\sellingpartner-api-aa-java
リポジトリのローカルコピーにあります。このフォルダには、認証および認証ライブラリ、Swagger Code Generator 用のカスタマイズされたテンプレート、および正しいバージョンの SDK を生成するための設定ファイルが含まれています。
Java SDK を生成するには、ローカルディレクトリの各 JSON ファイルに対して次のコマンドを実行する必要があります。
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
たとえば、次のコマンドを実行して Java コードを生成します。 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.
生成された SDK には、LWA 認証情報を設定するためのクラスが含まれており、それらを使用して 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.
ステップ 3:認証/承認ライブラリ (AA) ライブラリを構築します。
SDK を生成したら、AA ライブラリをビルドします。
- に移動します
selling-partner-api-models\clients\sellingpartner-api-aa-java
リポジトリのローカルコピーのフォルダを開いて実行mvn package
。これにより、という名前のフォルダーが生成されます。target
。このフォルダにはJAR
ファイル名sellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar
(または似たような名前の) と必要なすべての依存関係。 - 次のコマンドを実行して、
JAR
ファイルをローカルの{{1}}リポジトリにインストールします。
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
実際のものを見つけることができます groupId
、 artifactId
、および version
上部付近の値 pom.xml
内のファイル selling-partner-api-models\clients\sellingpartner-api-aa-java
フォルダー。
例:
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
ステップ 4:ライブラリを SDK の依存関係として追加します。
ライブラリを依存関係として追加するには、を編集する必要があります pom.xml
ファイル。
-
ローカルディレクトリで、
selling-partner-api-models/clients/sellingpartner-api-aa-java
そして開いてpom.xml
ファイル。 -
次のコードを依存関係としてファイルに追加します。
<dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency> -
ファイルを保存して閉じます。
次のステップは、実際のアプリケーションを作成し、生成された Java SDK を使用して SP-API に接続することです。
ステップ 5:生成された Java SDK を使用して販売パートナー API に接続します。
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.
-
{{0}}の「ファイル」メニューで「ファイルシステムからプロジェクトを開く」を選択し、生成されたJava SDKをインポートします。
-
で
src/main/java
を追加class
コードを書くために。 -
追加されたコードを入力してください
class
次のインスタンスを設定するには:- LWA credentials (refer to Configure your LWA credentials)
注
注:クラスパスが
JAR
内のクラスを認識しない場合は、{{2}}フォルダーで作成されたtarget
ファイルを追加する必要があります。このフォルダーは生成されたSDKフォルダーにあります。 -
生成された SDK API のインスタンスを作成し、オペレーションを呼び出します。例として、出品者向け販売パートナーAPIに接続するための以下のサンプルコードを参照してください (このAPI用のSDKを生成した場合)。
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(); } } }
コードを実行したら、main
クラスを実行すると、承認された出品者が出品できるマーケットプレイスのリストが表示されます。
他の SP API でも同様の手順を実行できます。
Updated 23 days ago