Une visite approfondie de l'API eBay

Ce message invité provient de Ronnie Mitra, architecte principal de l'API de Couche 7 basé à Londres et travaillant sur les marchés européens et asiatiques. Vous pouvez retrouver Ronnie sur Gazouillement ou la Blog de la couche 7.

Au Académie API, nous prenons l'habitude d'étudier les API et d'en discuter pour améliorer notre métier. Nous le faisons habituellement en privé et à huis clos, mais le mois dernier, ProgrammableWeb m'a donné l'occasion de rédiger un avis public sur l'API Boxet je suis heureux d'avoir la possibilité d'en écrire un autre. Cette fois, nous allons explorer l'ensemble des API d'eBay.

Si l'industrie des API Web était comme l'industrie automobile, eBay serait alors notre Ford Motor Company – une organisation historique qui a connu un énorme succès et ouvert la voie à d'autres dans le domaine. En effet, eBay a contribué à définir la scène des API ouvertes et a joué un rôle de premier plan en influençant la technologie et les activités des API depuis que la société a créé son programme de développement en 2000.

Le portail des développeurs eBay – vers 2001

Ce succès et cette longévité rendent l'API eBay particulièrement intéressante à étudier, nous donnant une occasion rare d'inspecter une API ouverte réussie qui existe depuis plus de 10 ans. Notre visite examinera l'interface de l'API ainsi que le reste de l'expérience du développeur, y compris les aspects de l'inscription, de la documentation, des conditions de service et du support communautaire.

enregistrement

Champs de saisie requis: 12

Temps approximatif pour terminer l'inscription: 5 minutes

Il y a 12 champs de saisie qui doivent être remplis pour demander un ID de développeur eBay, y compris un nom d'entreprise, un numéro de téléphone et un captcha pour prouver que vous êtes un être humain. Certes, le processus n'est pas aussi pénible que le dépôt de vos déclarations de revenus, mais il est certainement plus lourd que les portails modernes qui ont adopté une approche «sans friction» pour l'enregistrement.

Inscription à un identifiant de développeur eBay

Une fois que vous avez dépassé cela, le processus est simple – vous recevez un e-mail de confirmation après l'enregistrement et lors de l'activation, générez un ensemble de clés API pour votre application. Vous n'avez pas besoin d'attendre qu'un humain évalue votre application et vous pouvez commencer à appeler immédiatement l'API eBay avec vos nouvelles informations d'identification.

L'interface

Style architectural: Tunneling

Formats de message pris en charge: SOAP, XML, JSON, nom-valeur

Avant d'examiner l'interface, il est important de comprendre que l'API eBay est grande. Très, très gros.

Un échantillon de la collection d'API eBay

Il y a en fait 19 API individuelles disponibles sur la plateforme de développement eBay, et ce nombre n'inclut pas le Pay Pal ou Magento interfaces qui existent sous le plus grand parapluie de la marque eBay. Bien que certaines de ces API soient obsolètes, la plupart d'entre elles sont activement prises en charge, ce qui en fait la plus grande API publique que j'ai personnellement rencontrée.

Il est possible que bon nombre de ces interfaces appellent en fait les mêmes services internes dans les coulisses. Cela nous fournit une excellente illustration de la gestion des produits API et des décisions qui doivent être prises à mesure que le public augmente, quel que soit le code ou le modèle de données réellement exposé.

Les produits de l'API eBay semblent être délimité en fonction d'un public cible (par exemple, les acheteurs par rapport aux vendeurs) et du type de modèle de messagerie utilisé (par exemple, demande / réponse par rapport à pub / sub). Bien que la segmentation d'une API comme celle-ci puisse permettre aux développeurs de se concentrer plus facilement sur les fonctionnalités qu'ils utiliseront, elle a l'inconvénient d'augmenter la complexité et de forcer le développeur à utiliser plusieurs API lorsque les exigences le jugent nécessaire.

Les API Web peuvent être classées en fonction de leur style architectural (c'est-à-dire la collection de fonctionnalités et de traits qui nous permettent de classer les interfaces en groupes). Les trois styles d'API les plus populaires à l'heure actuelle sont le tunneling, l'objet et l'hypermédia (voir ce vidéo pour une meilleure compréhension de ces classifications). Toutes les API eBay présentent le style de tunneling, qui est le plus souvent associé au protocole de messagerie SOAP.

Cependant, ce ne sont pas toutes les interfaces basées sur SOAP sur eBay. Le format XML brut est largement pris en charge et le produit de recherche appelé Découverte API expose une interface basée sur l'URI qui est invoquée via une opération HTTP GET. Mais, contrairement aux API de style objet (ou CRUD) plus connues qui permettent aux développeurs de localiser des ressources via la construction d'URI, cet URI est un point de terminaison de service fixe sur lequel des paramètres de requête tels que l'opération à appeler peuvent être passés. En effet, l'interface URI basée sur GET est la même que celle SOAP, sauf que le mécanisme de transport est différent.

Il n'y a rien de mal à implémenter une API de style de tunneling. De bonnes interfaces doivent être conçues pour faciliter une utilisation réelle, et il existe de nombreux développeurs pour lesquels ce style est à la fois familier et préféré. Cependant, les API de style objet ont tendance à être préférées par les communautés de développement mobile et Web et eBay peut ne pas trouver le bon accord si elles veulent attirer ces développeurs.

Alors que la lecture seule Recherche d'API pourrait être considéré comme un peu excentrique, le API de trading peut être carrément frustrant à utiliser. Curieusement, de nombreuses conventions SOAP et HTTP standard ne sont pas respectées, y compris la bonne utilisation des codes d'état HTTP. Les développeurs qui ont perfectionné leurs compétences d'intégration avec des API non eBay trouveront l'expérience de l'apprentissage de l'API de trading un voyage difficile et déroutant. En fin de compte, les développeurs doivent apprendre la façon dont eBay connecte l'API afin d'utiliser le API de trading interface.

Bien que le groupe d'API eBay soit enraciné dans le style de tunneling basé sur XML et SOAP, la passerelle ql.io d'eBay est une anomalie. Construit à l'aide de node.js, cette idée originale de Subbu Allamaraju a été publiée dans la communauté open source en 2011 et fournit une interface JSON / HTTP de type SQL pour toute API basée sur HTTP. En plus de fournir une interface convaincante pour eBay et d'autres services, ql.io peut aider à réduire le temps nécessaire pour effectuer de nombreux appels séquentiels en orchestrant ces invocations en parallèle.

Tout cela est prometteur, mais malheureusement, vous ne pouvez pas utiliser ql.io à moins de télécharger la source et de la déployer sur un serveur node.js – localement ou dans le cloud. Essentiellement, ql.io devient un composant de la propre solution d'application du développeur, nécessitant un investissement non trivial de temps et d'argent pour une instance de production. Il aurait été formidable de voir ql.io intégré dans les interfaces d'eBay, mais je n'ai trouvé aucune preuve d'une instance hébergée prête pour la production.

Documentation

Clarté: claire

Niveau de profondeur: profond

Il y a beaucoup de documentation disponible pour l'ensemble d'API eBay et chaque produit a son propre portail de documentation. Les documents font un excellent travail de description de toutes les subtilités de chaque API et de son contexte dans l'écosystème eBay, et il existe un bon nombre d'exemples. Le défi consiste à parcourir toutes ces informations pour trouver l'élément spécifique dont vous avez besoin.

J'ai été impressionné par le nombre de tutoriels et de cas d'utilisation disponibles sur le site. Ce sont d'excellents points de départ pour toute personne nouvelle dans l'API et un bon exemple de la façon dont une navigation claire et une documentation ciblée peuvent simplifier une interface complexe. En plus des didacticiels, il existe un petit ensemble d'exemples de code, des kits de développement logiciel (SDK), un outil de test d'API et un outil de rapport d'utilisation qui suit les mesures pour le Commerce API.

Vous ne confondrez pas la documentation de l'API eBay avec le slick, amorcercomme les sites de navigation dynamique proposés par les fournisseurs d'API modernes. En fait, certains des portails de documentation eBay vous empliront de nostalgie lorsque vous afficherez des pages qui semblent avoir voyagé dans le temps depuis la fin des années 90.

Mais mis à part le style, l'écriture est simple et les documents importants comme les guides de démarrage rapide, les didacticiels et les références sont faciles à trouver.

Si vous créez un client SOAP ou XML, vos besoins seront bien servis par la documentation. Il existe des fichiers WSDL et des schémas XML faciles à trouver pour chaque service, et la documentation de référence est bien structurée. Parfois, le flux de documentation peut être frustrant et le manque de cohérence dans le style est rebutant, mais si vous travaillez assez dur, les informations dont vous avez besoin sont là pour vous.

Étonnamment, presque tous les guides, références et supports sont destinés au développement basé sur le Web et le serveur plutôt qu'aux développeurs mobiles. Je pourrais trouver très peu d'informations concernant iOS ou Android et encore moins les plateformes mobiles moins populaires. Étant donné que le mobile est un énorme moteur de croissance des API, le manque de documentation mobile-centric est un problème.

Conditions d'utilisation

Les conditions d'inscription en tant que développeur eBay sont assez claires et énoncées dans le Contrat de licence API. Je ne suis pas avocat, mais ma lecture de l'accord n'a présenté aucun signal d'alarme, car la plupart des conditions semblaient assez raisonnables pour un fournisseur d'API protégeant ses propres intérêts.

La limite de taux pour les demandes d'API varie en fonction du produit que vous choisissez d'utiliser, mais la majorité des API eBay vous limiteront à un taux de 5000 demandes par jour. Les applications à volume plus élevé peuvent demander une limite plus élevée à condition de réussir un programme de certification de compatibilité eBay, auquel cas elles peuvent demander jusqu'à 1,5 million de demandes sur les API les plus populaires.

Communauté et soutien

L'une des choses vraiment intéressantes à propos de l'utilisation de l'API eBay est d'avoir accès à leur environnement sandbox. Le sandbox est un site eBay simulé qui vous permet de tester votre application client par rapport à des données réalistes sans impact sur l'état de la version de production. Tester les fonctions de soumission des offres et de gestion des enchères serait extrêmement difficile sans ce moteur de simulation, c'est donc une fonctionnalité merveilleuse à laquelle accéder.

En général, l'écosystème de développeurs pour eBay est bon. Il n'est pas difficile de trouver des exemples de code sur le Web, et Stack Overflow a une section API eBay saine et active. Au sein du propre site de développeur x.commerce d'eBay, un forum communautaire est disponible et très utilisé. Il existe également de nombreux exemples et exemples d'applications à apprendre à la fois dans leur portail et sur le Web.
Bien qu'il y ait eu des exceptions, la communauté des développeurs eBay est principalement basée sur le peer-to-peer.

Cela pourrait être le cas d'eBay, victime de son propre succès et incapable de faire évoluer son équipe d'assistance pour répondre à la demande. Les plus sceptiques pourraient signaler qu'eBay facture en fait les développeurs pour le support de l'API et peut ne pas être motivé à fournir une assistance gratuite. Quoi qu'il en soit, l'absence d'eBay au sein de leur communauté en ligne était notable.

Sécurité

Protocoles pris en charge: SSL, flux d'autorisation personnalisé

Les interfaces eBay sont protégées par un ensemble de clés générées par les développeurs après leur inscription. Ce style de clé secrète de contrôle d'accès est devenu une pratique courante dans le monde des API et fonctionne bien à condition que les applications clientes puissent préserver la confidentialité de leurs informations d'identification.

Pour les interactions plus sensibles – telles que les API qui permettent aux applications d'agir au nom des utilisateurs eBay – un protocole d'autorisation délégué est utilisé. Ce schéma est antérieur aux spécifications OAuth 1 et OAuth 2, mais le flux de base doit être familier aux développeurs qui comprennent OAuth.

Tarification et coût

Mécanisme de tarification: N / A (gratuit pour un usage public)

Au début des années 2000, les développeurs devaient payer une cotisation pour avoir le privilège de rejoindre le programme des développeurs eBay. Mais 2005 a marqué une étape importante dans l'histoire de l'API Web avec eBay déplacé vers un modèle gratuit, ouvrant leur API à tous et reconnaissant que l'industrie entrait dans l'ère des rois des développeurs.

Bien que l'utilisation de leur API soit ouverte et gratuite, eBay facture un supplément pour le support technique. Il n'est pas rare qu'une organisation facture des frais de support pour des produits gratuits, mais il est rare de le voir dans l'espace API Web. Plus inquiétant, les développeurs doivent suivre cette même voie d'assistance payante lorsqu'ils signalent des bogues et ne reçoivent des remboursements que si eBay convient qu'il y a une erreur dans l'API.

Prix ​​du support payant

Bien que je soupçonne que ces frais sont en place simplement pour récupérer les coûts d'exploitation plutôt que pour toute motivation de profit sournoise, ils envoient un message négatif à la communauté des développeurs. Les bonnes relations développeur-éditeur devraient ressembler à des partenariats dans lesquels les deux parties bénéficient de leur association. Cela envoie le message opposé.

Sommaire

En prenant du recul, il est clair que l'API eBay est une grande réussite. Il existe un grand nombre d'applications utilisant l'API eBay et l'écosystème des développeurs continue de prospérer. Il est clair que les utilisateurs d'eBay ont grandement bénéficié de la stratégie d'API de l'entreprise, compte tenu de la quantité et de la qualité des outils tiers disponibles et de la diversité des plates-formes par lesquelles ils peuvent accéder au site.

Les produits API d'eBay ont grandi et changé au fil des ans, mais à mon goût, certains d'entre eux commencent à se sentir datés et ne se comparent pas bien avec les interfaces plus propres et plus simples auxquelles les développeurs sont exposés actuellement. Je ne crois pas que je suis seul dans cette position, car il n’est pas très difficile de trouver des explosions de frustration API de trading de la communauté des développeurs.

Les nouveaux éditeurs d'API peuvent apprendre de l'exemple d'eBay et tirer la leçon que la conception d'API est un effort constant, pas un exercice ponctuel. La marque d'une grande API n'est pas simplement celle qui existe depuis longtemps; au lieu de cela, il évolue pour répondre aux demandes d'interaction changeantes de son public.



URL: http://tinyurl.com/sbntjn9

Comments are closed.