{"word_count": 365, "character_count": 2375}
La série avait commencé par une présentation introductive puis par ce billet consacré aux données d'exemplaires, voyons dès à présent le problème des services aux lecteurs : renouvellement, liste des prêts en cours, demande de communication et réservation. Comment intégrer ces nouvelles possibilités à Blacklight (BL) ?[caption id="attachment_3808" align="alignright" width="241"]Serveur en tenue - Par telomi sur Flickr - Licence CC BY-NC-ND 2.0[/caption]Appelons cela un problème, car la solution n'est pas totalement dans les mains de BL qui ne fournit pas d'outils pour se connecter à un catalogue. Pour bénéficier de toutes ces fonctionnalités utiles aux lecteurs, il faut un préalable évident : le SIGB interrogé doit proposer une interface permettant d'interroger ses services par des applications externes comme BL. Ce n'est pas toujours le cas et, pour nous, Absysnet ne dispose pas, par défaut, de telles interfaces. Heureusement, nous avons sous la main un programme répondant au doux nom de « zabnetarch », ajouté il y a quelques années à Absysnet par le prestataire pour l'intégration à notre défunt et regretté portail Archimed.Ce programme est interrogeable via une connexion réseau simple TCP/IP. Nous lui passons des ordres rudimentaires du type : « donne moi les informations du lecteur possédant tel identifiant » ou encore « réserve cet exemplaire pour tel lecteur », et « zabnetarch » répond en XML en fournissant les données souhaitées ou un code explicite indiquant l'échec ou la réussite de la commande.Quelques lignes de code pour finirUne fois pris en main le fonctionnement de cette « API» minimaliste, il ne reste plus qu'à l'intégrer à BL. Avec Ruby On Rails, le principe est simple, il suffit d'ajouter un fichier avec des instructions en ruby dans le répertoire « models » de l'application. Pour chaque service (renouvellement, réservation, etc.) on ajoute une fonction dédiée dans notre fichier qui pourra être appelée par le programme qui gère l'utilisateur authentifié, offrant ainsi de nouveaux usages à l'intention du lecteur.Désormais, nous avons intégré les données d'exemplaires, les services aux lecteurs fonctionnent, notre nouvel OPAC est presque prêt. La prochaine étape sera de déployer Blacklight sur son serveur définitif. Au menu, il sera question de capistrano, git, passenger mais nous verrons cela dans un prochain billet...