[Java] Nouvelle spécification Implémentation de l'API de recherche de produits Yahoo!

Notez que l'API de recherche de produits de Yahoo! Aura de nouvelles spécifications. https://developer.yahoo.co.jp/webapi/shopping/shopping/v3/itemsearch.html

La structure de JSON a changé en raison de la nécessité d'encoder les mots de recherche. Nous utiliserons Jackson pour gérer JSON. Veuillez vérifier l'introduction par vous-même.

Choses à faire

  1. Envoyez le mot de recherche reçu du HTML à l'API.
  2. Recevez le JSON, extrayez les informations nécessaires et transférez-le.

1. Envoyez le mot de recherche reçu du HTML à l'API.

Par rapport à l'ancienne spécification, le codage UTF-8 est requis.

java


//ID d'application
final String appID = "ID d'application";

//Rechercher le mot UTF-8 encodage
String query = request.getParameter("searchWord");
String encodedQuery = URLEncoder.encode(query, "UTF-8");

//Création d'URL
String url = "https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch"
               + "?appid=" + appID + "&query=" + encodedQuery;
URL conUrl = new URL(url);

//Lien
HttpURLConnection con = (HttpURLConnection)conUrl.openConnection();
con.connect();

2. Recevez le JSON, extrayez les informations nécessaires et transférez-le.

Notez que la structure de JSON est différente des anciennes spécifications. Cette fois, nous allons extraire les 10 meilleurs noms de produits et prix des résultats de recherche.

java


//Lire la chaîne json
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json = br.readLine();
br.close();

//Convertir la chaîne json en JsonNode
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);

//ArrayList qui stocke les JavaBeans
ArrayList<DataBeans> list = new ArrayList<>();

//Extraire les informations de 10 éléments et les stocker dans la liste
for(int i = 0; i < 10; i++){
  //Puisque la valeur des hits est un tableau, spécifiez le numéro d'élément avec un entier.
  String name = node.get("hits").get(i).get("name").textValue();
  int price = node.get("hits").get(i).get("price").asInt();
  
  //Définir les informations dans JavaBeans
  DataBeans bean = new DataBeans();
  bean.setName(name);
  bean.setPrice(price);

  list.add(bean);
}
request.setAttribute("resultData", list);
request.getRequestDispatcher("searchResult.jsp").forward(request, response);

Recommended Posts

[Java] Nouvelle spécification Implémentation de l'API de recherche de produits Yahoo!
[Java] J'ai essayé de mettre en œuvre la recherche de produits de l'API Yahoo
[Java] Créez quelque chose comme une API de recherche de produits
Exemple de code pour appeler l'API Yahoo! Local Search en Java
Exemple de code pour appeler l'API Yahoo! Shopping Product Search (v3) avec l'API client HTTP officiellement introduite à partir de Java 11
API Java Stream
[Java] Obtenez des images avec l'API Google Custom Search
Exemple de code pour appeler l'API Yahoo! Shopping Product Search (v3) avec Spring RestTemplate
java1.8 nouvelles fonctionnalités
Appelez l'API Amazon Product Advertising 5.0 (PA-API v5) en Java
Essayez de mettre en œuvre à l'aide de l'API de recherche de produits Rakuten (facile)
Implémentation de la recherche par hashtag Rails
Résumé des nouvelles fonctionnalités de Java 12
Vérifier l'implémentation de Java toString ()
Résumé des nouvelles fonctionnalités de Java 13
[Java] API / carte de flux
Implémentation de la fonction de recherche
Pratique de l'API Java8 Stream
Implémentation du tri de tas (en java)
API Zabbix en Java
Fonction de recherche [implémentation copier-coller]
Nouveautés de Java 8
Résumé des nouvelles fonctionnalités de Java 10
Résumé des nouvelles fonctionnalités de Java 14
Nouveautés de Java 9,10,11