Phase 2 : service de lookup ISBN en cascade BnF puis OpenLibrary

Recuperation des metadonnees d'un livre a partir de son ISBN, cote serveur
uniquement (aucune interface, aucune persistance).

Cascade : BnF en ISBN-13, puis BnF en ISBN-10 converti, puis OpenLibrary.
La conversion 13 -> 10 est indispensable et non optionnelle : la BnF indexe
l'ISBN tel qu'imprime, les ouvrages d'avant 2007 ne portent qu'un ISBN-10 et
sont introuvables par l'EAN-13 que lit le scanner.

Toutes les notices trouvees sont remontees (jusqu'a 5) : un meme ISBN peut
correspondre a plusieurs reeditions, le choix revient a l'utilisateur.

Le double appel /isbn puis /authors d'OpenLibrary est bien fait, avec repli
sur l'oeuvre quand l'edition ne porte aucun auteur : c'est le bug de BookLogr
(titre rempli, auteur vide) qu'il ne faut pas reproduire.

La couverture vient toujours d'OpenLibrary, avec ?default=false pour obtenir
un 404 plutot qu'une image placeholder.

87 tests xUnit, sur fixtures enregistrees : aucune dependance au reseau.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-17 22:22:47 +02:00
co-authored by Claude Opus 5
parent 4990e41f3e
commit f8f30dbcf7
37 changed files with 1661 additions and 0 deletions
@@ -0,0 +1 @@
{"personal_name": "Clifford Stein", "birth_date": "1965", "type": {"key": "/type/author"}, "source_records": ["bwb:9780262046305", "amazon:6053556491", "promise:bwb_daily_pallets_2021-07-13", "bwb:9781495319280"], "name": "Clifford Stein", "alternate_names": ["Tahsin Oner, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Urfat Nuriyev, Efendi Nasiboglu", "Clifford Stein, Robert L. Drysdale, Kenneth Bogart", "by by Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Thomas H. Cormen Clara Lee Erica Lin"], "key": "/authors/OL2633511A", "remote_ids": {"viaf": "23967971"}, "latest_revision": 4, "revision": 4, "created": {"type": "/type/datetime", "value": "2008-04-29T13:35:46.876380"}, "last_modified": {"type": "/type/datetime", "value": "2023-10-11T14:36:58.897915"}}