une application mobile avec les webservices koha
DESCRIPTION
Concevoir une version mobile de l'opac Koha en utilisant les web services.TRANSCRIPT
une application mobile
avec les webservices koha
Julien SicotSymposium Koha
MAi 2013
Thème « responsive »développé par le CCSR
Une version mobileFAcile !
Intégré à la version communautaire à partir de la 3.10
Préférence opacthemes
CSS + Javascript
Usage mobile Lenteurs Webservices
Toutes les fonctionnalités de l’OPAC classique ne
conviennent pas forcément à un usage mobile
Interface de l’OPAC est relativement lourde à charger, la recherche est assez lente
Expérimentation pour mieux appréhender les webservices
de Koha.
Une web appPourquoi ?
TechnologiesUtilisées
SRU ILS-DI
Jquery mobile
+
Successeur de Z39-50. Développé et maintenu par la Bibliothèque du Congrès. Version actuelle (version 1.2) date de 2007
SRUSearch/Retrieve via URL
Tourné vers les technologies du web (protocole http et format XML).
SRU permet de faire circuler des requêtes à l’intérieur des URLs en utilisant l’architecture REST
Notamment utilisé pour rechercher et obtenir les enregistrements correspondant à un requête formulée selon le langage de requête CQL « Contextual Query Language »
SRU
http://www.loc.gov/standards/sru/
SRUdans koha
Paramétrage du publicserver avec écoute sur un port libre (par défaut 9998 pour l'exposition des données bibliographiques)Koha-conf.xml
SRUdans koha
Le paramétrage des index se trouve dans le fichier etc/zebradb/pqf.properties. Il contient le mapping entre les différents types d'index à considérer et les index zebra, ainsi que les mappings structurels, relationnels ou troncature...
pqf.properties
SRULes requêtes
• version : version de SRU• operation : searchRetrieve, explain ou scan• recordPacking !: format de sortie (ex : marcxml)• startRecord !: numéro de la notice de départ• maximumRecords!: nombre de notices à retourner au
maximum• query!: la requête (en fonction des index définis dans
le pqf.properties)
Structure Exemple*
• Recherche «bretagne»limitée au titre• Tri par pertinence• Type de document est un périodique• Sauf notices indiquées comme «non visible opac»• 20 résultats retournés à partir de l’enregistrement 1
* http://catalogue.bu.univ-rennes2.fr:9998/biblios?version=1.2&operation=searchRetrieve&query=dc.title%20all/relevant%20%22bretagne%22%20and%20%28dc.itemtype=REVUE%29%20not%20dc.suppress=1&startRecord=1&maximumRecords=20
Recommendations de la DLF (Digital Library Federation)
ILS-DIintegrated library systems - discovery interfaces
Set de web services / APIs pour favoriser, faciliter la communication / les échanges de données entre SIGB et les services de découverte
Disponibilité en temps réel des exemplaires. Informations
du compte lecteur. Transactions, réservations,
prolongations, etc.
Architecture du type REST
ILS-DI
http://www.diglib.org/architectures/ilsdi/
ILS-DIdans koha
Dans Koha, il est nécessaire d’activer le web service au niveau des préférences «web services» et de bien penser à déclarer l'ip du serveur qui devra accéder aux webservices (pour limiter l’accès à ce dernier)
ILS-DI:AuthorizedIPs
ILS-DILes requêtes possibles
dans koha
Le webservice est exposé au niveau de l’OPAC. La liste des requêtes possibles et la documentation est visible à l’adresse http://votre.serveur/cgi-bin/koha/ilsdi.pl
/cgi-bin/koha/ilsdi.pl
GetAvailabilityretourne la disponibilité des exemplaires en fonction d’un identifiant donné
GetRecordsretourne les informations bibliographiques et les données d’exemplaires (format marxml) en fonction d’une liste d’identifiants
GetAuthorityRecordsretourne en fonction d’une liste d’identifiants, les données d’autorités correspondantes
LookupPatronretourne l’identifiant d’un lecteur en fonction de son borrowernumber, son numéro de carte ou son nom
AuthentificatePatronauthentifie un adhérent en fonction de son login / mot de passe koha
GetPatronStatusretrourne les informations du compte lecteur
HoldTitle /HoldItem /CancelHoldpour placer ou annuler une résevation sur un titre ou un exemplaire
Getservicesretourne la liste des services disponibles pour un adhérent sur un exemplaire
RenewLoanprolonge le prêt sur le compte d'un adhérent
Micro wsVia le module bilans et statistiques
Possibilité d’utiliser le module «bilans et statistiques» pour rendre public depuis l’opac des rapports paramétrés au niveau de l’interface pro (format de sortie JSON)
http://url.de.lopac/cgi-bin/koha/svc/report?id=[id_rapport]
RESTful
git://git.biblibre.com/koha-restful.git
à surveiller
Web service développé par BibLibre pour le projet Drupal Opac (pas encore communautaire)Architecture de type REST (REpresentational State Transfer)Format de sortie possible : JSONExposé depuis l’opac : http://votre.serveur/cgi-bin/koha/rest.pl
Exemples de requêtes : GET branches (liste des bibliothèques : libellés et codes)GET /biblio/[biblio_id]/items (liste des exemplaires pour une notice)GET user/all (liste des adhérents)GET user/byid/[patron_id]/issues (prêts en cours d’un lecteur)GET user/byid/[patron_id]/holds (réservations en cours d’un lecteur)GET /user/byid/[patron_id]/issues_history (historique de prêt d’un lecteur)GET /biblio/[biblio_id]/holdable?borrowernumber= [patron_id] (vérifie si un document est autorisé à la résevation)
Framework complémentaire à la librairie jQuery !
Jquery mobile
Interface utilisateur pensée pour un usage mobile avec prise en compte des gestes et des écrans tactiles
Simplicité d’utilisation. Technologies HTML5 et CSSPersonnalisable. Un thème roller
permet de créer son propre thème très facilement.
http://jquerymobile.com/
Permet de créer facilement des applications Web cross-plateforme (compatibles tous les
navigateurs, responsive design, multiplateforme)
L’application
Fonctionnalités• Recherche simple
• Gestion disponibilité des exemplaires
• Accès compte lecteur (statut inscription, messages de circulation, prêt en cours, retards
• Recherche avancée
M├── Dictionaries (Libellés et traduction de l’interface)
├── auth_values
│ └── CCODE_en.txt
│ └── ETAT_en.txt
├── en.txt
├── FR.txt
├── scripts
│ └── Plugins
│ └── uTILS
│ ├── unimarc-utils.js (parsing MARXML ≃ DES XSLT KOHA)
│ └── utils.js (fonctions utiles)
│ └── SCRIPT.js (options de config + scripts globaux)
├── STYLES
│ └── IMAGES
│ └── jquery.m_opac.min.css (PEUT être remplacé par un nouveau thème jquery mobile)
│ └── m_opac.css
└── SVC
│ └── config.php (Fichier de configuration, db et langue)
│ └── ilsdi.getAvailability.php
│ └── ilsdi.getPatronInfo.php
│ └── ilsdi.getRecord.php
├── INDEX.PHP (INITIALISATION des pages jquery)
--├── pqf.properties (Fichier MAPPING INDEX ZEBRA pour SRU) À COPIER DANS $KOHA_ETC/ZEBRADB/
--├── srugw.pl (Script proxy pour SRU) À Copier dans $KOHA_SRC/opac/MOBILE/
https://github.com/jsicot/R2-Koha-Mobile (branche Master)
Les sourcesSur github