Vous êtes sur le README usager. Si vous souhaitez accéder au README développement, veuillez suivre ce lien : README-developpement
best-ppn-api est une API permettant de :
- lire des lignes kbart à partir d'un topic Kafka (alimenté par l'API kbart2kafka lien github)
- calculer le best ppn pour chaque ligne et de l'inscrire sur la ligne en cours de traitement
- d'envoyer les lignes vers de nouveaux topics pour traitement ultérieur (insertion dans la base de Bacon, mise à jour de notices dans le Sudoc)
- d'exposer un web service permettant de calculer le best ppn pour une ligne kafka donnée.
La lecture, le calcul et l'envoie d'une ligne kbart à partir d'un topic Kafka sont des processus automatiques. Ils seront exécutés automatiquement et en parallèle d'une exécution de l'API kbart2kafka (lien vers le github de kbart2kafka.
Le Web Service (ws) bestPpn permet de calculer un best ppn via les informations transmises. Ces informations doivent être du même type que celles disponibles sur une ligne d'un fichier kbart.
http://
[placer ici l'url d'accès à l'application sur votre serveur]/api/v1/bestPpn?log=true&provider=SPRINGER&publication_type=monograph&publication_title=Theories%20de%20l%27information&online_identifier=978-3-540-37798-6&print_identifier=&title_url=https://link.springer.com/10.1007/BFb0065764&date_monograph_published_online=1974&date_monograph_published_print=1974&first_author=
La requête possède un paramètre log
de type booléen (true
ou false
). Il permet d'afficher ou non les messages de log dans le résultat, en plus du best ppn (s'il a été déterminé par l'API).
La requête doit obligatoirement posséder un paramètre provider
, mais si le champ associé est vide.
-
Dans un navigateur internet :
- log à true
<BestPpnDto> <ppn>155212915</ppn> <typeSupport>ELECTRONIQUE</typeSupport> <logs> <logs>Entrée dans onlineId2Ppn</logs> <logs> url : https://www.sudoc.fr/services/onlineId2ppn/monograph/978-3-540-37798-6/SPRINGER / ppn(s) : [PpnWithTypeDto(ppn=155212915, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=true), PpnWithTypeDto(ppn=233094091, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=false)] / erreur(s) : [] </logs> <logs> PPN Electronique : PpnWithTypeDto(ppn=155212915, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=true) / score : 5 </logs> <logs> Le PPN PpnWithTypeDto(ppn=233094091, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=false) n'a pas de provider trouvé </logs> <logs>Entrée dans doi2ppn</logs> <logs> url : https://www.sudoc.fr/services/doi2ppn?provider=SPRINGER&doi=10.1007/BFb0065764 / ppn(s) : [] / erreur(s) : [] </logs> </logs> </BestPpnDto>
- log à false
<BestPpnDto> <ppn>155212915</ppn> <typeSupport>ELECTRONIQUE</typeSupport> </BestPpnDto>
-
Dans une application dédiée (type Postman) :
- log à true
{ "ppn": "155212915", "typeSupport": "ELECTRONIQUE", "logs": [ "Entrée dans onlineId2Ppn", "url : https://www.sudoc.fr/services/onlineId2ppn/monograph/978-3-540-37798-6/SPRINGER / ppn(s) : [PpnWithTypeDto(ppn=155212915, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=true), PpnWithTypeDto(ppn=233094091, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=false)] / erreur(s) : []", "PPN Electronique : PpnWithTypeDto(ppn=155212915, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=true) / score : 5", "Le PPN PpnWithTypeDto(ppn=233094091, typeSupport=ELECTRONIQUE, typeDocument=MONOGRAPHIE, providerPresent=false) n'a pas de provider trouvé", "Entrée dans doi2ppn", "url : https://www.sudoc.fr/services/doi2ppn?provider=SPRINGER&doi=10.1007/BFb0065764 / ppn(s) : [] / erreur(s) : []" ] }
- log à false
{ "ppn": "155212915", "typeSupport": "ELECTRONIQUE" }