--Utilisez l'API Amazon Product Advertising 5.0 (PA-API v5) à partir de Java
Puisque paapi5-java-sdk-1.0.0 n'est pas distribué par Maven Central Repository etc., téléchargez et utilisez le fichier jar.
Téléchargez paapi5-java-sdk-example.zip depuis Utilisation du SDK · API Product Advertising 5 \ .0 Et déployez.
Le répertoire sdk contient un exemple de code qui utilise paapi5-java-sdk-1.0.0.
$ ls ./sdk/ | sort
Callback.java
ConnectionPoolSampleRequest.java
GetBrowseNodes.java
GetBrowseNodesAsync.java
GetBrowseNodesWithHttpInfo.java
GetItems.java
GetItemsAsync.java
GetItemsWithHttpInfo.java
GetVariations.java
GetVariationsAsync.java
GetVariationsWithHttpInfo.java
SearchItems.java
SearchItemsAsync.java
SearchItemsWithHttpInfo.java
Le répertoire dependencies contient le SDK paapi5-java-sdk-1.0.0.jar et les fichiers jar pour ses bibliothèques dépendantes.
$ ls ./dependencies/ | sort
commons-codec-1.11.jar
commons-logging-1.2.jar
gson-2.8.1.jar
gson-fire-1.8.0.jar
hamcrest-core-1.3.jar
httpclient-4.5.5.jar
httpcore-4.4.9.jar
jackson-annotations-2.9.0.jar
jackson-core-2.9.5.jar
jackson-core-asl-1.9.2.jar
jackson-databind-2.9.3.jar
jackson-mapper-asl-1.9.2.jar
jackson-xc-1.9.2.jar
jackson-xml-databind-0.6.2.jar
json-20180130.jar
junit-4.12.jar
logging-interceptor-2.7.5.jar
okhttp-2.7.5.jar
okio-1.6.0.jar
paapi5-java-sdk-1.0.0.jar
stax-api-1.0-2.jar
stax2-api-3.1.0.jar
swagger-annotations-1.5.15.jar
threetenbp-1.3.5.jar
Si vous développez le fichier paapi5-java-sdk-1.0.0.jar et regardez pom.xml, vous trouverez les informations sur les dépendances, alors reportez-vous à ceci pour les paramètres de la bibliothèque de dépendances.
Vous trouverez ci-dessous un extrait partiel d'informations sur les dépendances de META-INF / maven / com.amazon.paapi5 / paapi5-java-sdk / pom.xml.
<dependencies>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger-core-version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp-version}</version>
</dependency>
<dependency>
Cette fois, placez le fichier paapi5-java-sdk-1.0.0.jar téléchargé dans le répertoire libs.
├── build.gradle
├── libs
│ └── paapi5-java-sdk-1.0.0.jar
├── settings.gradle
└── src
└── main
└── java
└── com
└── example
└── App.java
build.gradle
Fichier de configuration Gradle.
plugins {
id 'java'
id 'application'
}
repositories {
mavenCentral()
}
dependencies {
//Téléchargé paapi5-java-sdk
implementation files('libs/paapi5-java-sdk-1.0.0.jar')
// paapi5-java-Bibliothèques dont dépend le SDK(paapi5-java-sdk-1.0.0.pot pom.J'ai fait référence à xml)
implementation 'io.swagger:swagger-annotations:1.5.15'
implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'com.squareup.okhttp:logging-interceptor:2.7.5'
implementation 'com.google.code.gson:gson:2.8.1'
implementation 'io.gsonfire:gson-fire:1.8.0'
implementation 'org.threeten:threetenbp:1.3.5'
}
application {
mainClassName = 'com.example.App'
}
sourceCompatibility = targetCompatibility = '1.8'
settings.gradle
Fichier de configuration Gradle.
rootProject.name = 'hello-amazon-pa-api-world'
App.java
Un exemple de programme qui utilise paapi5-java-sdk-1.0.0.
package com.example;
import com.amazon.paapi5.v1.ApiClient;
import com.amazon.paapi5.v1.ApiException;
import com.amazon.paapi5.v1.ByLineInfo;
import com.amazon.paapi5.v1.Contributor;
import com.amazon.paapi5.v1.ErrorData;
import com.amazon.paapi5.v1.GetItemsRequest;
import com.amazon.paapi5.v1.GetItemsResource;
import com.amazon.paapi5.v1.GetItemsResponse;
import com.amazon.paapi5.v1.Item;
import com.amazon.paapi5.v1.PartnerType;
import com.amazon.paapi5.v1.SearchItemsRequest;
import com.amazon.paapi5.v1.SearchItemsResource;
import com.amazon.paapi5.v1.SearchItemsResponse;
import com.amazon.paapi5.v1.api.DefaultApi;
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) {
ApiClient client = new ApiClient();
client.setAwsAccessKey("<YOUR-ACCESS-KEY-HERE>"); //Clé d'accès obtenue
client.setAwsSecretKey("<YOUR-SECRET-KEY-HERE>"); //Clé secrète obtenue
client.setHost("webservices.amazon.co.jp"); // Amazon.co.hôte API Web jp
client.setRegion("us-west-2"); // Amazon.co.jp en nous-west-Précisez 2
String trackingId = "<YOUR-PARTNER-TAG-HERE>"; //ID de suivi obtenu
//Recherche de produits par mot-clé
System.out.println("===== searchItems ================================");
String keywords = "Shakespeare";
searchItems(client, trackingId, keywords);
//Obtenir des informations sur les produits de l'ASIN
System.out.println("===== getItems ===================================");
List<String> itemIds = new ArrayList<>();
itemIds.add("4391641585");
itemIds.add("B010EB1HR4");
itemIds.add("B0125SPF90");
itemIds.add("B07V52KSGT");
getItems(client, trackingId, itemIds);
}
//Recherche de produits par mot-clé
public static void searchItems(ApiClient client, String trackingId, String keywords) {
//Spécifiez le type de valeur à inclure dans la réponse
// https://webservices.amazon.com/paapi5/documentation/search-items.html#resources-parameter
List<SearchItemsResource> searchItemsResources = new ArrayList<SearchItemsResource>();
searchItemsResources.add(SearchItemsResource.ITEMINFO_TITLE);
searchItemsResources.add(SearchItemsResource.ITEMINFO_PRODUCTINFO);
searchItemsResources.add(SearchItemsResource.IMAGES_PRIMARY_MEDIUM);
searchItemsResources.add(SearchItemsResource.OFFERS_LISTINGS_PRICE);
//Assembler les informations de demande
SearchItemsRequest req = new SearchItemsRequest()
.itemCount(5) //Nombre de résultats de recherche
.partnerTag(trackingId) //ID de suivi
.keywords(keywords) //Mot-clé de recherche
.searchIndex("All") //Catégorie de recherche(AmazonVideo, Books, Hobbies,La musique, etc. peut être spécifiée)
.resources(searchItemsResources) //Type de valeur à inclure dans la réponse
.partnerType(PartnerType.ASSOCIATES);
try {
//Effectuer une recherche
DefaultApi api = new DefaultApi(client);
SearchItemsResponse res = api.searchItems(req);
//Obtenir des résultats
if (res.getSearchResult() != null) {
for (Item item : res.getSearchResult().getItems()) {
System.out.println("--------------------------------------------------");
//Titre, ASIN,URL du produit
System.out.println("Title: " + item.getItemInfo().getTitle().getDisplayValue());
System.out.println("ASIN: " + item.getASIN());
System.out.println("DetailPageURL: " + item.getDetailPageURL());
//Que ce soit un produit pour adultes
System.out.println("IsAdultProduct: " + item.getItemInfo().getProductInfo().getIsAdultProduct().isDisplayValue());
//URL de l'image
System.out.println("ImageURL: " + item.getImages().getPrimary().getMedium().getURL());
//prix
if (item.getOffers() != null
&& item.getOffers().getListings() != null
&& item.getOffers().getListings().get(0).getPrice() != null
&& item.getOffers().getListings().get(0).getPrice().getDisplayAmount() != null) {
System.out.println("Price: " + item.getOffers().getListings().get(0).getPrice().getDisplayAmount());
}
}
}
//La gestion des erreurs
if (res.getErrors() != null) {
for (ErrorData error : res.getErrors()) {
System.out.println("Error code: " + error.getCode());
System.out.println("Error message: " + error.getMessage());
}
}
} catch (ApiException e) {
//La gestion des erreurs
e.printStackTrace();
System.out.println("Status code: " + e.getCode());
System.out.println("Errors: " + e.getResponseBody());
System.out.println("Message: " + e.getMessage());
if (e.getResponseHeaders() != null) {
System.out.println("Request ID: " + e.getResponseHeaders().get("x-amzn-RequestId"));
}
} catch (Exception e) {
//La gestion des erreurs
e.printStackTrace();
}
}
//Obtenir des informations sur les produits de l'ASIN
public static void getItems(ApiClient client, String trackingId, List<String> asinList) {
//Spécifiez le type de valeur à inclure dans la réponse
// https://webservices.amazon.com/paapi5/documentation/get-items.html#resources-parameter
List<GetItemsResource> getItemsResources = new ArrayList<GetItemsResource>();
getItemsResources.add(GetItemsResource.ITEMINFO_TITLE);
getItemsResources.add(GetItemsResource.ITEMINFO_BYLINEINFO);
//Assembler les informations de demande
GetItemsRequest req = new GetItemsRequest()
.itemIds(asinList) //Liste des ASIN
.partnerTag(trackingId) //ID de suivi
.resources(getItemsResources) //Type de valeur à inclure dans la réponse
.partnerType(PartnerType.ASSOCIATES);
try {
//Effectuer une recherche
DefaultApi api = new DefaultApi(client);
GetItemsResponse res = api.getItems(req);
//Obtenir des résultats
if (res.getItemsResult() != null) {
for (Item item : res.getItemsResult().getItems()) {
System.out.println("--------------------------------------------------");
//Titre, ASIN,URL du produit
System.out.println("Title: " + item.getItemInfo().getTitle().getDisplayValue());
System.out.println("ASIN: " + item.getASIN());
System.out.println("DetailPageURL: " + item.getDetailPageURL());
//Informations sur les contributeurs telles que les auteurs
ByLineInfo bi = item.getItemInfo().getByLineInfo();
if (bi != null && bi.getContributors() != null) {
for (Contributor c : bi.getContributors()) {
System.out.println("Contributor: " + c.getRole() + ": " + c.getName());
}
}
}
}
//La gestion des erreurs
if (res.getErrors() != null) {
for (ErrorData error : res.getErrors()) {
System.out.println("Error code: " + error.getCode());
System.out.println("Error message: " + error.getMessage());
}
}
} catch (ApiException e) {
//La gestion des erreurs
e.printStackTrace();
System.out.println("Status code: " + e.getCode());
System.out.println("Errors: " + e.getResponseBody());
System.out.println("Message: " + e.getMessage());
if (e.getResponseHeaders() != null) {
System.out.println("Request ID: " + e.getResponseHeaders().get("x-amzn-RequestId"));
}
} catch (Exception e) {
//La gestion des erreurs
e.printStackTrace();
}
}
}
Environnement d'exécution: macOS Catalina + Gradle 6.1 + Java 8 (AdoptOpenJDK 1.8.0_242-b08)
$ gradle run
> Task :run
===== searchItems ================================
--------------------------------------------------
Title:7 Shakespeare NON SANZ DROICT (11)(Bande dessinée jeune magazine)
ASIN: B084BP9ZD9
DetailPageURL: https://www.amazon.co.jp/dp/B084BP9ZD9?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=osi&th=1&psc=1
IsAdultProduct: false
ImageURL: https://m.media-amazon.com/images/I/51KrT7qGuOL._SL160_.jpg
Price: ¥660
--------------------------------------------------
Title:Terminer Shakespeare(1)Hamlet(Chikuma Bunko)
ASIN: 4480033017
DetailPageURL: https://www.amazon.co.jp/dp/4480033017?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=osi&th=1&psc=1
IsAdultProduct: false
ImageURL: https://m.media-amazon.com/images/I/51RZYRYGQ8L._SL160_.jpg
Price: ¥726
--------------------------------------------------
Title:Hamlet(Version sous-titrée)
ASIN: B015BY1Q6Q
DetailPageURL: https://www.amazon.co.jp/dp/B015BY1Q6Q?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=osi&th=1&psc=1
IsAdultProduct: false
ImageURL: https://m.media-amazon.com/images/I/516XD+o35gL._SL160_.jpg
Price: ¥400
--------------------------------------------------
Title:Toutes les œuvres de Shakespeare lues dans le synopsis(Nouveau livre Shodensha)
ASIN: B06ZZH149Y
DetailPageURL: https://www.amazon.co.jp/dp/B06ZZH149Y?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=osi&th=1&psc=1
IsAdultProduct: false
ImageURL: https://m.media-amazon.com/images/I/41Ms+C0NwNL._SL160_.jpg
Price: ¥836
--------------------------------------------------
Title:Épisode 8
ASIN: B07WPX7D76
DetailPageURL: https://www.amazon.co.jp/dp/B07WPX7D76?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=osi&th=1&psc=1
IsAdultProduct: false
ImageURL: https://m.media-amazon.com/images/I/517ol4X4BwL._SL160_.jpg
===== getItems ===================================
--------------------------------------------------
Title:Guide officiel du test Sumikko Gurashi Encyclopédie Sumikko Gurashi(Série Life)
ASIN: 4391641585
DetailPageURL: https://www.amazon.co.jp/dp/4391641585?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=ogi&th=1&psc=1
Contributor:Surveillance:Soleil X
Contributor:Éditer:Femme au foyer et entreprise de style de vie
--------------------------------------------------
Title:Guardian Shinden Chapitre 2<Édition étendue>(Remasterisé)
ASIN: B010EB1HR4
DetailPageURL: https://www.amazon.co.jp/dp/B010EB1HR4?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=ogi&th=1&psc=1
Contributor:Artiste:Halloween
--------------------------------------------------
Title:Accessoire de décoration Halloween Citrouille à bascule H 130cm
ASIN: B0125SPF90
DetailPageURL: https://www.amazon.co.jp/dp/B0125SPF90?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=ogi&th=1&psc=1
--------------------------------------------------
Title:Halloween(Version sous-titrée)
ASIN: B07V52KSGT
DetailPageURL: https://www.amazon.co.jp/dp/B07V52KSGT?tag=<YOUR-PARTNER-TAG-HERE>&linkCode=ogi&th=1&psc=1
Contributor:Apparence:Jamie Lee Curtis
Contributor:Apparence:Judy Greer
Contributor:Apparence:Andy Mattichuck
Contributor:Apparence:Will Patton
Contributor:Apparence:Virginie Gardner
Contributor:Apparence:Nick Castle
Contributor:Apparence:James Jude Courtney
Contributor:Apparence:Hulk Birginer
Contributor:Apparence:Lian Reese
Contributor:Apparence:Jefferson Hall
Contributor:réalisé par:David Gordon Green
Contributor: Writer:David Gordon Green
Contributor: Writer:Jeff Floodley
Contributor: Writer:Danny McBride
Contributor:Produire:Marek Acad
Contributor:Produire:Jason Bram
Contributor:Produire:Bloc de facture
BUILD SUCCESSFUL in 3s
2 actionable tasks: 2 executed
Recommended Posts