Introduction à l'API eBay avec Python L'API de recherche - Partie 2

Introduction à l'API eBay avec Python L'API de recherche - Partie 2

Dans l'article précédent, nous avons vu comment effectuer les étapes préliminaires pour préparer notre environnement de travail, créer un développeur eBay et un compte Sandbox et générer les clés et les informations d'identification nécessaires pour exécuter les appels d'API. Dans ce nouveau chapitre, nous créerons notre première demande et effectuerons notre premier appel en se concentrant sur «la recherche d'API»

Dans ce tutoriel, vous apprendrez:

  • Quels sont les appels possibles de la «recherche»;
  • Quels sont les paramètres que vous pouvez utiliser pour personnaliser votre appel;
  • Comment créer une demande avec le SDK Python;
  • Comment effectuer un appel API;
Introduction à l'API eBay avec Python: The Finding API - Partie 2

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Système d'exploitation agnostique.
Logiciel git et python3
Autre Connaissance du langage de programmation Python et des concepts de base orientés objet.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Le Découverte API



Le Découverte L'API est la première que nous explorons dans cette série d'articles sur interagir par programme avec eBay en utilisant Python et le SDK eBay Python. Cette API fournit des appels qui peuvent être très utiles à la fois pour les acheteurs et les vendeurs et nous donne accès aux capacités de recherche de plate-forme eBay, offrant un moyen plus rapide de récupérer et de manipuler les données par rapport aux techniques de grattage Web.

Les appels API de recherche

Voici, à mon avis, les appels les plus pertinents fournis par le Découverte API:

  • FindItemsAdvanced - effectuons des requêtes complexes et appliquons des filtres;
  • FindItemsByCategory - Trouvez des articles appartenant à une catégorie spécifique;
  • findItemsByKeywords - Avec cet appel, nous pouvons trouver des éléments basés sur les mots clés;
  • FindItemsByProduct - Avec cet appel, nous pouvons trouver des éléments basés sur des identifiants comme ISBN, EAN, UPC et EPID;

Vous pouvez trouver la liste complète des appels disponibles pour le Trouver une API dans la page dédiée.
Dans ce tutoriel, mais nous nous concentrerons sur le FindItemsByKeywords appel.



Avant que nous commencions

Dans l'article précédent de cette série, nous avons mis en place notre environnement de travail, donc à partir de maintenant, je suppose que vous avez correctement installé le SDK eBay Python et vous avez créé des touches API. Puisque nous travaillons avec le Découverte API, nous pouvons travailler directement sur le site de production.

Commençons, alors. En tant que première chose, nous créons un répertoire comme base de notre projet; Nous l'appellerons (étonnamment) «eBay»:

$ mkdir ebay

À l'intérieur de ce répertoire, nous avons besoin de stocker nos informations d'identification dans le eBay.yaml dossier, comme nous l'avons discuté dans l'article précédent. Vous pouvez trouver un modèle de ce fichier à l'intérieur de la racine du référentiel GitHub que nous avons cloné. Voici le contenu de mon eBay.yaml Fichier, dans lequel j'ai déjà entré mes informations d'identification:

contenu du fichier de configuration de l'API eBay Comme vous pouvez observer, tout ce que nous devons fournir dans la section dédiée au Trouver une API, est le Identifiant d'application pour notre environnement de production.

Notre premier appel API

Par défaut, eBay accepte la demande d'API et fournit sous la forme de xml Structures: Ce qui nous rend possible d'interagir avec ces éléments d'une manière orientée objet, c'est le SDK Python. Maintenant que nous avons nos informations d'identification en place, nous pouvons commencer à créer notre première demande d'API. Créez un nouveau fichier et appelez-le FindByKeywords.py, À l'intérieur, la première chose que nous devons faire est d'importer les modules nécessaires:

#!/ usr / bin / env python3 d'Ebaysdk.Trouver une connexion d'importation 
Copie

La prochaine chose à faire est d'initialiser une instance du Connexion classe, voici comment nous le faisons:

api = connexion (config_file = 'ebay.yaml ', siteid = "ebay-us")

Nous avons transmis quelques paramètres au constructeur du Connexion classe: config_file, et ID du site. Le premier est nécessaire pour spécifier le chemin d'accès au fichier contenant nos informations d'identification: car par défaut, sa valeur est la même de celle que nous avons fournie, nous aurions pu l'omettre. Les deuxième arguments qu'il est nécessaire pour spécifier le site du pays eBay La demande doit être indiquée: "Ebay-us" est la valeur par défaut. Si je voulais effectuer ma recherche sur le site italien, par exemple, j'aurais utilisé "Ebay-it" plutôt. De nombreux autres paramètres peuvent être transmis pour modifier la configuration par défaut, mais pour savoir que notre configuration est suffisante. Allons plus loin.

Nous avons initialisé notre instance du Connexion classe, nous devons maintenant construire une demande, qui sera incluse dans l'appel de l'API. Grâce au SDK Python, nous pouvons représenter une demande avec un dictionnaire, Spécification de ses paramètres avec des paires de valeurs clés:

demande = 'Mots-clés': «Seigneur des anneaux», 
Copie

Ce qui précède est la demande minimale possible pour le FindItemsByKeywords Appel: nous venons de spécifier les mots clés pour rechercher. C'est possible parce que 'mots clés' est le seul paramètre requis pour cet appel.

Selon l'appel que nous voulons effectuer, nous pouvons utiliser de nombreux autres paramètres pour affiner notre demande. Pour connaître exactement tous les paramètres de demande disponibles pour un appel spécifique, vous pouvez consulter la documentation eBay assez détaillée pour cela.



Restreindre notre recherche avec un filtre

Nous pouvons spécifier une liste de filtres à l'intérieur de notre demande, afin que le nombre de résultats retournés soit réduit. À l'intérieur de la demande, le échangeur La clé est associée à un tableau contenant tous les filtres, chacun sous la forme d'un dictionnaire, où le nom La clé est associée à une chaîne représentant le nom du filtre et le valeur L'un est associé à la valeur réelle qui devrait être utilisée pour le filtre. Voyons un exemple. Disons que nous voulons ajouter un filtre à notre demande, afin de restreindre notre recherche uniquement aux «nouveaux» éléments:

request = 'Keywords': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'new'] 
Copie

Dans l'exemple ci-dessus, nous avons utilisé le condition filtre, mais beaucoup d'autres sont disponibles. Par exemple, le Excludeur Le filtre est utile pour exclure les vendeurs spécifiques des résultats, tandis que le Expédition gratuite uniquement un pour restreindre la recherche uniquement aux articles vendus avec la livraison gratuite. La liste des filtres et leurs valeurs possibles est vraiment longue: encore une fois, vous pouvez tous les trouver en consultant la documentation officielle.

Paginer les résultats

Un autre paramètre très utile que nous pouvons ajouter à notre demande est pagination. En l'utilisant, nous pouvons spécifier un format de pagination souhaité. À l'intérieur de la demande, le pagination La clé est associée à un dictionnaire, lui-même contenant deux clés: entrées et numéro de page.

Avec le premier, nous pouvons spécifier le nombre de résultats que nous voulons recevoir «par page»: pas plus que 100 Les résultats par page sont pris en charge (il s'agit également de la valeur par défaut), tandis que le minimum est 1. Avec le deuxième élément, numéro de page, Nous pouvons spécifier la page que nous voulons recevoir dans les résultats.

Disons que, par exemple, nous ne voulions pas plus de 10 résultats par page et que nous ne nous sommes intéressés que par la première page, notre demande deviendrait:

request = 'Keywords': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'entrées pourpage': 10, ' PageNumber ': 1 
Copie

En fait, nous aurions pu omettre numéro de page, Puisque sa valeur par défaut est toujours «1».

Trier les résultats

Un autre paramètre très utile que nous pouvons ajouter à notre demande, est ordre de tri. Avec ce paramètre, nous pouvons utiliser l'un des critères de tri disponibles pour mieux organiser nos résultats. Disons par exemple, nous voulions trier nos résultats par prix dans l'ordre croissant, afin d'avoir les articles les moins chers inclus dans les résultats d'abord:

request = 'Keywords': 'Lord of the Rings', 'itemFilter': ['name': 'condition', 'value': 'new'], 'paginationInput': 'entrées pourpage': 10, ' PageNumber ': 1,' SORSORDER ':' PricePluShippinglowest ' 
Copie

Dans ce cas, nous avons utilisé PricePluShippinglowest En guise de tri, les articles inclus dans les résultats seront donc triés par ordre croissant par le résultat de la somme de leur prix et de leurs frais d'expédition. Tout comme les filtres, les commandes de tri disponibles sont trop nombreuses pour être signalées ici. Parmi les autres, nous pouvons utiliser Distancinearest ou EndtimeSoonst Pour trier les résultats par distance dans l'ordre croissant, ou par le plus proche temps respectivement. Vous pouvez trouver tous les critères de tri possibles en consultant ce tableau.

Envoi de notre demande et obtenir les résultats

Maintenant que nous avons fini de créer notre demande, nous devons réellement l'envoyer à eBay et obtenir les résultats. Pour accomplir la première tâche, nous utilisons le exécuter Méthode sur notre API objet, spécifiant le nom de l'appel que nous voulons utiliser comme premier argument, et le dictionnaire représentant notre demande comme la seconde. Voici ce que notre script ressemble dans son intégralité à ce stade:



#!/ usr / bin / env python3 d'Ebaysdk.Rechercher la connexion d'importation si __name__ == '__main__': api = connexion (config_file = 'ebay.yaml ', debug = true, siteID = "ebay-us") request = ' keywords ':' seigneur des anneaux ',' itemFilter ': [' name ':' condition ',' value ':' new ' ], 'PaginationInput': 'EntriesPerpage': 10, 'PageNumber': 1, 'SORTORDER': 'PricePluShippinglowest' Response = API.EXECUTE ('FindItemsByKeywords', demande) 
Copie

Nos résultats seront retournés et nous le référenterons avec le réponse variable. Nous voulons maintenant les organiser, de sorte que pour chaque résultat, nous pouvons afficher le titre et le prix affichés à l'écran dans un bon format, nous pouvons ajouter une boucle simple pour accomplir ce résultat:

pour l'article en réponse.répondre.résultat de la recherche.Élément: Print (F "Titre: article.titre, prix: article.vendeurs.prix actuel.valeur") 
Copie

Si nous essayons maintenant de lancer le script, nous obtenons les résultats suivants:



Titre: Lord of the Rings The One Ring Lotr Fashion Fashion Fashion Women Manring SZ12, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ13, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size9, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ13, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Sz11, Prix: 0.01 Titre: Lord of the Rings The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size7, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ12, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size9, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring Size8, Prix: 0.01 Titre: Seigneur des anneaux The One Ring Lotr en acier inoxydable Men de mode Femmes Ring SZ13, Prix: 0.01 

À ce stade, vous pouvez demander: comment puis-je connaître la structure exacte des résultats? C'est une bonne question, et vous pouvez avoir une réponse en vérifiant le xml représentation de la sortie d'une demande d'appel que vous pouvez dans la documentation eBay dédiée à l'appel spécifique. Vous pouvez trouver celui sur FindItemsByKeywords en suivant ce lien.

Conclusions

Dans l'article précédent, nous avons expliqué comment configurer notre environnement de travail, obtenir nos clés d'API et installer le SDK Python, dans cette deuxième partie de notre série d'articles sur les API eBay, nous avons approché le Trouver une API, Et nous avons construit une demande simple en utilisant le FindItemsByKeywords appel. Nous avons vu brièvement comment ajouter des filtres et spécifier une commande de tri à notre demande et comment travailler avec les résultats retournés.

Dans le prochain article, entre autres choses, nous construire notre magasin et nous verrons comment utiliser le Commerce API pour créer et télécharger un élément. En conclusion, voici un récapitulatif de la documentation officielle que nous avons référencée dans cet article:

  • Documentation sur le FindItemsByKeywords appel
  • Liste des filtres de demande disponibles
  • Liste des commandes de tri disponibles
  • Liste des appels disponibles pour le Trouver une API

Table des matières

  • Partie 0

    Introduction

  • Partie I

    Obtenir des clés et accéder au bac à sable

  • DEUXIEME PARTIE

    L'API de découverte

  • Partie III

    L'API commerciale

  • Partie IV

    L'API de merchandising

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Comment créer un package Flatpak
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Masterring Bash Script Loops
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Comment travailler avec l'API WooCommerce REST avec Python
  • Tutoriel de débogage GDB pour les débutants
  • Comment utiliser ADB Android Debug Bridge pour gérer votre Android…