The lie of the API


Quelques réponses sur un billet qui a beau­coup circulé : The lie of the API.

Ça flatte beau­coup la mouvance HATEOAS mais je n’ac­croche pas. Même avec des clients très smart, impos­sible de faire un même site pour les visites « navi­ga­teur » et les accès « API ».

Le logi­ciel client de l’API ne sera jamais assez intel­li­gent pour comprendre autant le contexte que l’hu­main derrière son navi­ga­teur, et jamais assez souple pour gérer des chan­ge­ments non prévus.

Donc partons de notre biblio­thèque qui expose des collec­tions avec des conte­nus, chacun reliés à des auteurs.

Et si demain je change mes repré­sen­ta­tions pour ne plus mettre les bio des auteurs dans la fiche du livre direc­te­ment ? Certes tech­nique­ment il est possible de faire un robot qui sache récu­pé­rer cette bio sur la fiche de l’au­teur, mais quelle est la proba­bi­lité que les robots actuels gèrent le chan­ge­ment ?

Et si demain le site web est changé pour que le point d’en­trée premier soit l’au­teur ? Le logi­ciel saura-t-il recher­cher un livre dont il ne connait pas l’adresse ?

Et si demain je change le système de clas­si­fi­ca­tion des livres pour passer de BISAC à la CLIL française ? Quelle proba­bi­lité que le robot et l’ap­pli­ca­tif derrière gère ça de façon trans­pa­rente ?

La partie desti­née au robot (qu’on nomme géné­ra­le­ment « API ») n’a simple­ment pas les mêmes besoins que la partie desti­née aux humains (qu’on nomme souvent « web »). On peut faire conci­lier les deux au début, mais ça va casser au fur et à mesure des évolu­tions de la partie desti­née aux humains.

Tout ça pour quoi ? La satis­fac­tion intel­lec­tuelle du déve­lop­peur qui se dit qu’il corres­pond au schéma idéal du web. La valeur ajou­tée ne me semble pas justi­fier le risque.

C’est d’au­tant plus vrai qu’en réalité les clients qui codent des robots hyper­me­dia corrects il n’y en a pas tant que ça. Rapi­de­ment des tiers vont coder des robots en faisant de l’in­gé­nie­rie inverse sur les adresses, les iden­ti­fiants, la struc­ture, les données. Ça sera peut être de leur faute, mais ça va casser si vous faites des chan­ge­ments en vous repo­sant unique­ment sur le côté hyper­me­dia.

D’où la ques­tion : Souhai­tez-vous que ça fonc­tionne ou avoir raison ?


2 réponses à “The lie of the API”

  1. troll bait. :)

    Mais il n’y a pas de réponses à ton billet car il démarre sur une fausse caractérisation.

    « Le logiciel client de l’API ne sera jamais assez intelligent pour comprendre autant le contexte que l’humain derrière son navigateur, et jamais assez souple pour gérer des changements non prévus. »

    Je reformule pour montrer.

    « Le tracteur ne sera jamais assez intelligent pour comprendre autant le contexte que le conducteur derrière son véhicule, et jamais assez souple souple pour gérer la glace imprévue sur la route. »

    Ce qui est un beau cheval blanc d’Henri IV. ;) Ce n’est pas ce qui est proposé dans une API hypermedia quelconque que ce soit d’ailleurs sous forme JSON ou sous forme HTML. :) Mais j’ai déjà écrit un billet sur le sujet avec un élément important dans le billet sur la notion de besoin de marché (aka interopérabilité) entre les APIs.

    :)

    • Tu m’embêtes parce que tu ne réponds pas aux cas concrets donnés plus bas. Là je ne peux rien faire avec ton commentaire, et je ne comprends rien à ta reformulation. Le pire c’est que tu dis que tu as un billet qui peut aider à réfléchir mais tu n’en donnes pas l’URL et ton blog refuse les moteurs de recherche. Bref, tu veux dire quoi ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.