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:
+14
@@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Shared", "MaBibli.S
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Api", "MaBibli.Api\MaBibli.Api.csproj", "{D9FA3052-4E2D-4281-B098-60EBD7406E22}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MaBibli.Tests", "MaBibli.Tests\MaBibli.Tests.csproj", "{50C12C79-8653-4249-AD39-0EC3D2D7BA32}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -55,6 +57,18 @@ Global
|
||||
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x64.Build.0 = Release|Any CPU
|
||||
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D9FA3052-4E2D-4281-B098-60EBD7406E22}.Release|x86.Build.0 = Release|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x64.Build.0 = Release|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{50C12C79-8653-4249-AD39-0EC3D2D7BA32}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
Reference in New Issue
Block a user