Amazon ne veut plus de liens concurrents

[màj : Ce billet était intitulé "Amazon ne veut plus d'API concurrents". J'ai fait une erreur grotesque. Amazon ne veut plus de liens concurrents, bien sûr. Il n'est en réalité pas question d'API ici.]

Lu sur ResourceShelf (qui cite le blog de LibraryThing), signalé par Nicolas.

Je vous en traduis (rapidement — merci de votre indulgence) des extraits, car ce serait dommage que certains soient arrêtés par la langue.

La politique d’Amazon change — comment [LibraryThing] y répond :

Résumé : Amazon réclame de LT de supprimer les liens vers les autres libraires en ligne sur les notices d’ouvrages. Nous sommes donc en train de créer des page “Get it Now” avec des liens vers ces autres libraires en ligne[...].

Amazon exige de tous les sites web, comme une condition pour pouvoir exploiter leurs données, d’avoir une première page avec seulement un lien vers Amazon. Tout lien vers d’autres libraires est interdit. Des pages secondaires (que l’on consulte via la première page) peuvent avoir des liens autres qu’Amazon.

Tout le monde à LT conteste cette décision. LT n’est pas un site social de catalogage et de travail pour clients d’Amazon mais pour amateurs de livres (“book lovers”). La plupart d’entre nous sont des clients d’Amazon le mardi, mais achètent chez d’autres fournisseurs le mercredi et le jeudi ! [...]

Il est important de comprendre que ce n’est probablement même pas une bonne idée pour Amazon. [...] Amazon a gagné grâce à l’ouverture. Leurs données sont partout sur le web, et avec elles des millions de liens pointent vers Amazon. Ils ne bénéficieront pas d’un recul dans ce domaine.

Mais, d’accord ou non, nous sommes obligés d’accepter leurs conditions. Nous avons longuement réfléchi à supprimer complètement les données d’Amazon [...]. Mais nous perdrions beaucoup, en particulier les couvertures de livres? Finalement, nous avons décidé que les inconvénients dépassaient les avantages.

Avant tout, nous avons réfléchi à la manière de satisfaire Amazon, et de continuer à fournir à nos utilisateurs des options : Nous allons supprimer des premières pages les liens autres qu’Amazon, et fournir aux gens les meilleurs, les plus riches pages secondaires qui soient possibles.
Nous avons le droit de proposer des liens vers d’autres fournisseurs, comme IndieBound ou Barnes & Noble sur ces pages secondaires, et
nous irons plus loin que ce que nous n’avons jamais été. [...]

Les nouvelles conditions d’Amazon : art. 4 (Usage Requirements), d :

You will link each use of Product Advertising Content to, and only to, the related Product detail page of the Amazon Site, and you will not link any Product Advertising Content to, or in conjunction with any Product Advertising Content direct traffic to, any page of a site other than the Amazon Site (however, parts of your application that are not closely associated with Product Advertising Content may contain links to sites other than the Amazon Site).

Je vais replancher sur notre futur nouvel Opac (Primo), ce que nous allons y mettre, ou non.

PS  @Calimaq : une analyse serait saluée avec enthousiasme :-)

Vérifier la présence de ses ISBN dans Amazon (et GBS)

Je sais, vous allez me prendre pour un piper fou, et à chaque nouveau billet, vous dire : “Bon, il commence à radoter avec ses machins.”

Ce n’est pas que de ma faute : récemment, quelqu’un (non, pas Marlène, pour une fois) m’a poussé dans mes retranchements sur ce que j’arrivais ou non à faire avec Yahoo Pipes. Bref, ces derniers jours j’ai développé des compétences et découvert les “pipes d’appui” (la terminologie est de moi et n’est pas fixée : je vous laisse rebaptiser ça comme vous voulez, éventuellement en vous inspirant d’autres domaines).

Le principe est “simple” : je crée un pipe, mais celui-ci n’a d’intérêt que lorsqu’il est intégré dans un autre pipe.

Ainsi, j’ai créé un pipe qui, pour un ISBN donné, va lancer une requête dans Amazon : avec l’ISBN indiqué, il construit une URL de requête et ouvre la page des résultats chez Amazon) :

  1. S’il trouve l’ISBN, il sort le résultat : “Nombre d’ISBN trouvés : 1″ (même s’il a plusieurs résultats pour un même ISBN, il ne sort que le chiffre 1)
  2. S’il ne trouve pas l’ISBN, il ne sort rien du tout.

Ce pipe n’a aucun intérêt : si vous voulez savoir si un ISBN se trouve ou non chez Amazon, vous allez sur le site d’Amazon et vous le cherchez.

Sauf que par dessus, j’ai construit un autre pipe : on lui donne une liste d’ISBN (les ISBN sont sans tirets, et ils sont séparés les uns des autres par des tirets). Et pour chaque ISBN, il applique le pipe précédent.

Ca se passe ici : j’ai fait glissé un de “mes pipes” à l’intérieur du module Loop, et j’ai coché “Emit results” pour que le résultat de la boucle, ce soit les pipes-relais mis bout à bout.

  • Quand l’ISBN produit un item, il sort un item
  • Quand il ne produit rien, il en sort rien
  • Et à la fin, le second pipe décompte le nombre d’items (donc le nombre d’ISBN reconnus)

Ca ne vous évoque rien ? C’est une sorte d’API Amazon : il transforme les données HTML d’Amazon en données XML plus manipulables.

Pourquoi est-ce que j’ai fait ça ? Parce que pour utiliser les API Amazon, il faut avoir une clé Amazon et utiliser les API en question pour un site web. Moi, j’en ai besoin en local, ponctuellement. J’avais pu tester les API LibraryThing pour constater qu’ils couvraient 30% de notre catalogue (sur un échantillon de 1000 ISBN). Je n’avais pas pu le faire pour Amazon.

Désormais je sais qu’Amazon couvrirait 94% de nos notices. Pour être plus précis : Amazon a identifié 94% de nos ISBN. En l’état, cela ne me dit pas quel pourcentage de couvertures il peut me proposer, ou de tables des matières, résumés, commentaires, etc. Il faudrait que j’affine l’analyse des réponses que le site donne dans ses listes de résultats.

Donc j’ai fait plusieurs autres pipes :

Rq : j’ai dû entrer les ISBN par paquets de 200 (donc en 5 fois), car Yahoo Pipes n’arrivait pas à tout traiter d’un coup. Voici ce que ça donne :

1000 ISBN en 5 fois

1er jeu

2e jeu

3e jeu

4e jeu

5e jeu

Nombre d’ISBNs trouvés

190

192

187

188

191

Nombre de couvertures retrouvées

102

141

118

124

129

Nombre de livres “feuilletables”

0

0

29

30

14

En comparant les écarts d’une colonne à l’autre (fonction écart-type d’Excel), on constate que pour contrôler seulement la présence des notices, 200 notices auraient été suffisantes. Mais j’ai bien fait d’utiliser mon échantilon de 1000 ISBN pour les couvertures et les feuilletages, car il y a de grandes disparités.

Conclusions :

  • Amazon contient 94,8 % de nos notices
  • Amazon peut proposer des couvertures pour 61,4% de nos livres
  • Amazon peut proposer 7,3% de nos livres en feuilletage

Ce qu’il faut en retenir ?

  1. Qu’après plusieurs étapes encore, je pourrai vous entretenir de la manière d’utiliser ces pipes-relais (par exemple : convertir un numéro de département en son nom, via la liste donnée sur Wikipedia comme source d’information).
  2. Que vous pouvez déjà tester votre propre catalogue pour voir si ça vaut le coup d’utiliser Amazon comme fournisseur de contenus enrichis : en entrant une liste d’ISBN dans ce pipe.
  3. Après examen de ce à quoi ressemble une page de résultat, je ne peux pas savoir si Amazon me fournira pour un ISBN donné un résumé et une table des matières. Mais je peux considérer (ou plutôt : je me résigne à me contenter de ce) que le feuilletage induit un résumé et/ou une table des matières.
  4. Que je produirai sans doute les mêmes outils pour les sites que je n’ai pas pu tester par API (pour cause d’API Key) : WorldCat, Google Books, …

En fait, j’ai déjà fait celui pour Google Books — vérification  de la présence de notice, couverture, et extraits. Mais à plusieurs reprises il a refusé de répondre après plusieurs requêtes : il a sans doute remarqué que les serveurs de Yahoo le bombardaient un peu trop de questions et que ça ressemblait à du hacking.

Bref, j’ai finalement réussi à l’utiliser, mais je vous préviens tout de même du problème. Voici les résultats

ISBN dans Google Books

1er jeu

2e jeu

3e jeu

4e jeu

5e jeu

Nombre d’ISBNs trouvés

185

184

187

189

186

Nombre de couvertures retrouvées

92

22

26

36

33

Nombre de livres avec extraits

70

22

26

34

33

Donc en % par rapport à notre collection, ça donne :

  • GBS a reconnu 93,1% de nos ISBN
  • GBS peut fournir 20,9% des couvertures de ces livres
  • GBS peut fournir des extraits pour 18,5%  de ces livres

Tableau comparatif GBS – Amazon

Amazon

Google Book Search

Nombre d’ISBNs trouvés

94,8%

93,1%

Nombre de couvertures retrouvées

61,4%

20,9%

Nombre de livres avec extraits/feuilletage

7,3%

18,5%

Le nombre d’ISBN reconnus est équivalent (alors que pour les seules nouveautés, GBS n’avait que 76% de nos notices). Amazon a beaucoup plus de couvertures disponibles, et GBS un peu plus d’ouvrages disponibles sous forme d’extraits. Quel service voudrez-vous privilégier ?

Pourquoi pas les couvertures chez Amazon et les enrichissements textuels chez Google ?

PS : pour ceux qui ne voient pas comment, d’une liste d’ISBN en ligne, produire des ISBN sur la même ligne et séparés par des tirets, une petite vidéo.

Qu’est-ce qu’une API ?

[Préambule à l'usage de ceux qui seraient arrivés ici par hasard ou par Google : c'est un billet d'explications à l'usage des bibliothécaires par un bibliothécaire. Donc pas pour les développeurs, ni vraiment pour le grand public. Ceci étant posé, vous faites comme vous voulez ! ;-) ]

Ce n’est que par une fréquentation suivie avec des API que j’ai fini par comprendre ce que c’est. Comme vous n’avez pas forcément les mêmes fréquentations que moi (que Dieu vous garde !), j’ai supposé qu’une petite explication pouvait être utile.

Ce billet est aussi un préliminaire au suivant (sur le Sudoc).

Un besoin vital pour une interrogation “en masse”

Imaginons que vous êtes un utilisateur normal, et que vous voulez savoir si Amazon, PriceMinister et la Fnac peuvent vous vendre 1 livre — à quel prix et dans quel état.

Vous allez sur chacun des trois sites, vous cherchez le livre, vous triez par prix ou par état, et vous comparez les trois sites et vous choisissez le fournisseur vous proposant le livre au meilleur état possible pour le meilleur prix possible. Vous y avez passé 15 minutes. Pour un livre.

Imaginons maintenant que vous avez besoin d’acheter 30 livres (par exemple parce que vous vous apprêtez à faire une thèse). Si vous êtes d’une patience ordinaire, vous comparerez pour deux ou trois livres, et vous choisirez un seul fournisseur pour l’ensemble de la commande.

Mais l’idéal serait de disposer d’un comparateur. Soit un quatrième site propose un tel service (il va interroger les 3 sites et vous remontera les réponses avec tris communs possibles), soit vous allez utiliser les API proposées par chacun de ces services.

A quoi ressemblent les données ?

Amazon, PriceMinister et la Fnac disposent de bases de données bibliographiques auxquelles vous n’avez pas accès directement : tout ce à quoi vous avez accès, c’est une interface web, c’est-à-dire un écran qui habille l’affichage des données et leur manipulation. L’interface sert d’intermédiaire entre vous et la base de données.

Que se passe-t-il sur cette interface ? On peut exprimer la même action de différentes manières :

  1. Quand je lance une recherche “9782910227739″ dans le champ de recherche d’Amazon, je génère une liste de résultats (avec un seul item) affichant le livre Quel modèle de bibliothèque ?. Cette liste de résultats a une URL : http://www.amazon.fr/s/ref=nb_ss_w?field-keywords=9782910227739
  2. Donc si sur une page j’ai un lien hypertexte pointant vers cette page, et que je clique sur ce lien, c’est comme si je lançais une recherche dans la base. Donc cette URL est comme l’adresse web de la liste de résultats. [Il va de soi que cette page n'existe pas ailleurs que dans votre navigateur, le temps de l'affichage : elle n'est pas enregistrée sur les serveurs d'Amazon comme un document Word est stocké sur votre PC. Elle est créée à la volée].
  3. Donc en saisissant cette URL dans la barre d’adresse de votre navigateur, vous demandez à Amazon de générer du code HTML, comportant tout un tas de balises et de texte, et la partie la plus intéressante contenant les références au livre cherché (le reste de la page étant à peu de choses près commun à toutes les pages de résultats)
    <div class="productData">
    <div class="productTitle">
    <a href="http://www.amazon.fr/Quel-mod%C3%A8le-biblioth%C3%A8que-Anne-Marie-Bertrand/dp/2910227731/ref=sr_1_1?ie=UTF8&amp;qid=1245781881&amp;sr=1-1">Quel modèle de bibliothèque ?</a>
    <span class="ptBrand">de Anne-Marie Bertrand</span>
    <span class="binding"> (<span class="format">Broché</span> - 19 décembre 2008)</span>
    </div>
    <div class="newPrice">
    <a href="http://www.amazon.fr/Quel-mod%C3%A8le-biblioth%C3%A8que-Anne-Marie-Bertrand/dp/2910227731/ref=sr_1_1?ie=UTF8&amp;qid=1245781881&amp;sr=1-1">Acheter neuf</a>: 
    <strike>EUR 34,00</strike> <span>EUR 32,30</span>
    </div>
    <div class="fastTrack">Pas de stock; commandez maintenant et nous vous livrerons cet article lorsqu'il sera disponible</div>
    <div class="sss">
    <span class="sssFree">Livraison gratuite</span>
    <span class="sssLastLine"> possible (voir fiche produit).</span>
    </div>
    </div>

    Le code ci-dessus produit ce résultat :

  4. Bref, en utilisant l’URL http://www.amazon.fr/s/ref=nb_ss_w?field-keywords=9782910227739, vous générez le code ci-dessus.
  5. Et si vous changez l’ISBN dans l’URL, vous obtenez des informations bibliographiques différentes, liées à l’ISBN recherchées.
  6. Vous constatez donc que, quel que soit l’ISBN mis dans l’URL, le titre sera toujours au même endroit dans la page, dans la balise <a> elle-même incise dans la balise <div class=”productTitle”>, elle-même dans <div class=”productData”>.
  7. Donc en fabriquant des URL, vous lancez une requête à Amazon qui vous renvoie du code correspondant à l’URL envoyée, avec des informations intéressantes dedans, toujours structurées de la même manière.
  8. Pour manipuler les données “en masses”, il serait préférable d’avoir des pages web ne comportant que les informations réellement intéressantes : après tout, le reste de la page ne vous intéresse pas !
  9. Mais en fait, dans le scénario imaginé plus haut, pour chaque ISBN vous n’avez pas vraiment besoin du titre et de l’auteur, que vous connaissez — mais des prix et états d’exemplaires, informations qui ne sont pas dans cette page.

Bref :

  1. vous voulez des données nettoyées de tout ce qui est couleur, taille de caractère, etc.
  2. vous voulez tantôt des métadonnées bibliographiques classiques, tantôt d’autres types d’informations (prix, commentaires, pages de couvertures, etc.)

Finalement, utiliser des API c’est comme afficher une liste de résultats après requête, sauf que :

  • la page obtenue est en XML au lieu d’être en HTML.
  • il n’y a pas de formulaire de recherche : vous ne pouvez interroger la base que par des URL. Mais le résultat est comparable

Pour info : “API” veut dire “Application Programming Interface“. Vous voilà bien avancés !

Que veut dire “manipuler des données en masse” ?

Grosso modo, on peut trouver deux types d’utilisation de ces API :

  1. Vous avez votre propre base bibliographique (au hasard : un catalogue de bibliothèque) et vous voulez y intégrer des contenus d’autres sources
  2. Vous avez une liste de titres (sous forme de liste d’ISBN) et vous voulez extraire d’Amazon & consorts des informations sur la base.

1. Vous avez votre base bibliographique

Quand on interroge votre catalogue, le moteur utilise une feuille modèle ressemblant à ceci :

Titre : $title
Auteur : $author
Année : $annee
ISBN : $isbn

Où les mots précédés d’un $ sont des variables : selon les notices affichées, ce sera le titre, l’auteur et l’année de publication de tel ou tel document.

L’encodage sera évidemment plus complexe, et structuré en PHP, XSL ou autre. Mais cela n’a pas d’importance, on va faire comme si.

Donc dans la notice du document qui s’affiche, vous voulez qu’apparaisse la liste des autres éditions (si existantes) du même ouvrage. WorldCat propose une API intitulée getEditions : si vous structurez une URL sous la forme : http://xisbn.worldcat.org/webservices/xid/isbn/9782765406259?method=getEditions&format=xml&fl=form,year,lang,ed, WorldCat produit la liste des ISBN de toutes les éditions de l’ouvrage auquel appartient l’ISBN 9782765406259, sous la forme d’un fichier XML :

Copie d'écran - Liste d'ISBN avec l'API getEditions de WorldCat

Si vous savez qu’on peut interroger votre catalogue avec une URL de requête sous la forme : http://catalogue.bibliotheque.fr/search?isbn=9782765406259, vous allez pouvoir bricoler le code suivant qui va générer des liens vers d’autres notices.

  • Pour une notice en cours d’affichage dans votre Opac, dont l’ISBN est connu (variable $isbn), il va interroger WorldCat pour récupérer les ISBN des autres éditions
  • Et il va générer une URL de requête dans votre catalogue contenant chacun de ces ISBN
  • Ainsi pour chaque notice détaillée dans votre Opac, des liens vers les autres éditions du même ouvrage seront proposées

Précision : ce code n’existe pas, il ne correspond à rien. Je me suis inspiré de langages existants pour produire un truc à peu près compréhensible pour n’importe qui. Ce qui se trouve après les caractères # est du commentaire, non pris en compte par le programme

new variable FichierWorldcat = concat(“http://xisbn.worldcat.org/webservices/xid/isbn/”, $isbn)
# à partir de l’ISBN en cours, il structure l’URL d’interrogation vers WorldCat

for each $FichierWorldcat.rsp.isbn
# pour chaque contenu de balise “isbn” trouvée dans le fichier XML de WorldCat, il crée un lien vers votre catalogue

{ print <a href=”http://catalogue.bibliotheque.fr/search?isbn=$FichierWorldcat.rsp.isbn“>Autre édition</a>;

};

Evidemment, il serait préférable qu’un lien n’apparaisse que si le document existe réellement. Donc il faudrait que votre propre catalogue propose des API, pour que l’affichage du lien soit conditionné à la vérification d’existence d’un fichier XML dont l’adresse web serait : http://catalogue.bibliotheque.fr/api/isbn/9782765406259, par exemple. Ce fichier renverrait un certain message (infos bibliographiques, par exemple) si le livre est présent, et un autre message (balise <unknown/> par exemple) s’il n’est pas trouvé.

Bref, sur cet exemple les données de WorldCat vous permettraient de FRBRiser votre opac.

Autres exemples (rapidement)

De la même manière, en indiquant à LibraryThing, Amazon ou WorldCat un ISBN, ces bases vous proposent les données qu’ils sont capables d’associer à cet ISBN :

  • page de couverture
  • commentaires, notations, tags
  • prix (coût, mais aussi prix littéraires ou autres)
  • etc.

Les improbables API du Sudoc

<update>Les API Sudoc n’ont plus rien d’improbable, finalement. Je suis trop pessimiste et trop mauvaise langue (et j’aime me tromper !)</update>

Vous avez remarqué la fin de l’URL de WorldCat ? http://xisbn.worldcat.org/webservices/xid/isbn/9782765406259?method=getEditions&format=xml&fl=form,year,lang,ed. Le paramètre fl permet de préciser les informations à fournir comme attributs. Ici, le format, l’année de publication, la langue et le numéro d’édition.

Maintenant, imaginons que le Sudoc propose les données de son catalogue sous forme d’API.

Par exemple, si vous avez un ISBN (toujours 9782765406259), l’URL http://www.sudoc.abes.fr/api/isbn/9782765406259 génèrerait un fichier XML ressemblant à ceci :

A cela, rajoutez la possibilité d’avoir un paramètre permettant de préciser quelles informations vous voulez voir ou non figurer (le PPN, etc.) sous la forme : http://www.sudoc.abes.fr/api/isbn/9782765406259&attributs=ti,au,year,ppn,isbn,loc

Vous pourriez ainsi disposer facilement de la liste des bibliothèques proposant le même exemplaire. Mieux : vous pourriez proposer un lien vers les catalogues de ces bibliothèques (dont l’URL serait donnée dans le fichier XML produit). Mieux encore, vous pourriez, si votre bibliothèque et vos lecteurs sont à Paris, ne générer de lien que pour les bibliothèques de la région Ile-de-France.

Bref, vous pourriez faire l’économie du message standard : “Vous n’avez pas trouvé ? Allez voir dans le Sudoc”. En fait, les données elles-mêmes du Sudoc seraient visibles directement sur votre Opac.

Bon alors, ces API Sudoc, c’est pour quand ?… La réponse sera peut-être : attendez que le Sudoc soit dans WorldCat et utilisez alors les API WorldCat en filtrant sur les réponses émanant du Sudoc… Wait and see !

2. Vous avez une liste de titres (sous forme de liste d’ISBN) et vous voulez extraire d’Amazon & consorts des informations sur la base

[vous vous souvenez ? J'avais supposé deux scénarios possibles pour l'utilisation d'API, le premier étant la gestion d'un catalogue de bibliothèque en ligne et ses possibilités d'enrichissement]

L’utilisation d’API est intéressante aussi pour prospecter sur le contenu des bases bibliographiques disponibles sur le web. C’est ce qui m’a d’ailleurs amené à découvrir un peu les API WorldCat et LibraryThing.

Par exemple vous envisagez d’enrichir votre Opac avec diverses données. Vous hésitez entre Google Book Search, Amazon, WorldCat ou LibraryThing. Et vous excluez de les utilisez tous les trois parce que, pour un lecteur, voir 2 nuages de tags et une liste de mots clés (plus l’indexation Rameau), c’est cruel !

La question ne se posera pas seulement quant à la nature des contenus que chaque fournisseur, mais aussi quand au taux de recouvrement de ces bases avec votre catalogue. Ainsi, LibraryThing a peut-être beaucoup plus d’ouvrages, mais surtout en anglais — ou autres considérations de ce genre. Par ailleurs, peut-être que, pour votre collection, WorldCat vous proposera plus de commentaires mais moins de couvertures, etc.

Donc vous pouvez définir quel genre de contenus vous voulez proposer à vos lecteurs ; puis voir, pour chacun de ces contenus, quel pourcentage de vos livres chaque base contient.

C’est ce que j’ai fait avec mon échantillon de 1000 ISBN : j’ai mis cette liste dans un fichier XML, et pour chaque ISBN, j’ai généré des requêtes en API.

Que sont les API Key ?

J’ai été bloqué chez Amazon et WorldCat : il faut être enregistré (mais c’est gratuit) pour pouvoir vraiment utilisé leurs API. Lors de l’enregistrement, ces sites me fournissent un identifiant (une série de chiffres, voire un truc alphanumérique).

Chaque fois que vous voulez lancer une requête par API (sous forme d’URL contenant un ISBN), il faut rajouter quelque chose comme : “&key=1234425767897″, afin qu’Amazon ou WorldCat sache que c’est vous et pas un autre qui a fait cette requête. Cela facilite leurs statistiques et — si nécessaire — leur facturation…

Bon, il y a un autre intérêt, qui l’est aussi pour nous : une API permet aussi de manipuler les données elles-mêmes pour les modifier. Par exemple si vous avez un blog sous WordPress, certains programmes vous permettent de modifier vos articles, d’en créer de nouveaux, de rajouter des tags, etc. sans passer par l’interface en ligne : cela signifie que WordPress expose vos données sous forme de fichiers XML. Il faut donc que l’accès à ces fichiers soit conditionné à la fourniture d’un identifiant, surtout si vous voulez modifier lesdites données. D’où l’utilité de la clé.

En outre (mais j’ai l’impression que ce n’est pas systématique), une clé peut être associée à un site web. C’est-à-dire que si vous voulez enrichir vos notices de commentaires issus d’Amazon, l’URL de votre catalogue doit être indiquée à Amazon pour que celui-ci vous renvoie les résultats XML demandés.

Si bien que pour tester le contenu des bases par propulsions de listes XML d’ISBN stockées dans des fichiers sur mon PC — impossible !

Conclusion

Un informaticien (ou quelqu’un de plus compétent que moi) trouvera(it) certainement beaucoup d’erreurs et d’approximations dans ce billet, qui ne ressort que de la pratique que j’ai eu de tous ces outils.

Je les invite à réagir (avec leur indulgence coutumière) en commentaire. De toute façon, mon objectif n’est pas que toutes les personnes ayant lu ce billet soient capables de manipuler des API, mais qu’elles soient capables de comprendre ce dont on parle quand le mot arrive dans la conversation.

Je signalerai enfin que les API sont une forme de web services (ou, si vous préférez : dans les web services, on trouve notamment les API). Comme c’est le cas le plus fréquent, les deux expressions en viennent à être interchangeables.

<update après ce commentaire>Les web services sont les développements fait sur un site pour exploiter les API d’un autre site.</update>

Mais je ne développerai pas davantage sur ce terrain. <update>Et je fais bien !</update>