une application mobile avec les webservices koha

17
une application mobile avec les webservices koha Julien Sicot Symposium Koha MAi 2013

Upload: julien-sicot

Post on 29-Nov-2014

1.436 views

Category:

Self Improvement


3 download

DESCRIPTION

Concevoir une version mobile de l'opac Koha en utilisant les web services.

TRANSCRIPT

Page 1: Une application mobile avec les webservices Koha

une application mobile

avec les webservices koha

Julien SicotSymposium Koha

MAi 2013

Page 2: Une application mobile avec les webservices Koha

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

Page 3: Une application mobile avec les webservices Koha

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 ?

Page 4: Une application mobile avec les webservices Koha

TechnologiesUtilisées

SRU ILS-DI

Jquery mobile

+

Page 5: Une application mobile avec les webservices Koha

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/

Page 6: Une application mobile avec les webservices Koha

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

Page 7: Une application mobile avec les webservices Koha

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

Page 8: Une application mobile avec les webservices Koha

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

Page 9: Une application mobile avec les webservices Koha

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/

Page 10: Une application mobile avec les webservices Koha

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

Page 11: Une application mobile avec les webservices Koha

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

Page 12: Une application mobile avec les webservices Koha

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]

Page 13: Une application mobile avec les webservices Koha

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)

Page 14: Une application mobile avec les webservices Koha

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)

Page 15: Une application mobile avec les webservices Koha

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

Page 16: Une application mobile avec les webservices Koha
Page 17: Une application mobile avec les webservices Koha

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