Υπηρεσίες διαδικτύου
Το Koha παρέχει μια σειρά από APIs που επιτρέπουν την πρόσβαση στα δεδομένα και τις λειτουργίες του.
OAI-PMH
Για το Open Archives Initiative-Protocol for Metadata Harvesting (OAI-PMH) υπάρχουν δύο ομάδες «συμμετεχόντων»: Οι πάροχοι δεδομένων και οι πάροχοι υπηρεσιών. Οι πάροχοι δεδομένων (ανοικτά αρχεία, αποθετήρια) παρέχουν δωρεάν πρόσβαση σε μεταδεδομένα και μπορούν, αλλά δεν είναι απαραίτητο, να προσφέρουν δωρεάν πρόσβαση σε πλήρη κείμενα ή άλλους πόρους. Το OAI-PMH παρέχει μια εύκολη στην εφαρμογή, με ελάχιστα εμπόδια, λύση για τους παρόχους δεδομένων. Οι πάροχοι υπηρεσιών χρησιμοποιούν τις διεπαφές OAI των παρόχων δεδομένων για τη συγκομιδή και την αποθήκευση μεταδεδομένων. Σημειώστε ότι αυτό σημαίνει ότι δεν υπάρχουν αιτήματα άμεσης αναζήτησης προς τους Παρόχους Δεδομένων- αντίθετα, οι υπηρεσίες βασίζονται στα δεδομένα που συλλέγονται μέσω του OAI-PMH.
Μάθετε περισσότερα για το OAI-PMH στη διεύθυνση: http://www.openarchives.org/pmh/
Προς το παρόν, το Koha μπορεί να ενεργεί μόνο ως πάροχος δεδομένων. Δεν μπορεί να συλλέξει δεδομένα από άλλα αποθετήρια. Το μεγαλύτερο εμπόδιο στο να συγκεντρώνει το Koha από άλλα αποθετήρια είναι ότι το MARC είναι η μόνη μορφή μεταδεδομένων που το Koha ευρετηριάζει εγγενώς.
Για να ενεργοποιήσετε το OAI-PMH στο Koha επεξεργαστείτε την παράμετρο OAI-PMH. Μόλις ενεργοποιηθεί μπορείτε να επισκεφθείτε το http://YOURKOHACATALOG/cgi-bin/koha/oai.pl για να δείτε το αρχείο σας.
Από προεπιλογή, το Koha δεν θα συμπεριλάβει πληροφορίες αντιτύπων στα σύνολα αποτελεσμάτων OAI-PMH, αλλά μπορούν να προστεθούν χρησιμοποιώντας την επιλογή include_items στο αρχείο ρυθμίσεων που συνδέεται με το OAI-PMH:ConfFile.
Σημειώστε ότι το παρακάτω conf αρχείο του δείγματος περιέχει τόσο marc21 όσο και marcxml, καθώς το marc21 είναι το πρόθεμα μεταδεδομένων που συνιστάται από τις κατευθυντήριες γραμμές του OAI-PMH guidelines ενώ το marcxml ήταν το μόνο στο δείγμα πριν από την έκδοση Koha 23.11 (και η υποστήριξη για το marc21 προστέθηκε στην έκδοση Koha 17.05).
Παράδειγμα αρχείου OAI conf
format:
vs:
metadataPrefix: vs
metadataNamespace: http://veryspecial.tamil.fr/vs/format-pivot/1.1/vs
schema: http://veryspecial.tamil.fr/vs/format-pivot/1.1/vs.xsd
xsl_file: /usr/local/koha/xslt/vs.xsl
marc21:
metadataPrefix: marc21
metadataNamespace: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim
schema: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
include_items: 1
marcxml:
metadataPrefix: marcxml
metadataNamespace: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim
schema: http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
include_items: 1
oai_dc:
metadataPrefix: oai_dc
metadataNamespace: http://www.openarchives.org/OAI/2.0/oai_dc/
schema: http://www.openarchives.org/OAI/2.0/oai_dc.xsd
xsl_file: /usr/local/koha/koha-tmpl/intranet-tmpl/xslt/UNIMARCslim2OAIDC.xsl
Οι επιλογές είναι:
xsl_file: Διαδρομή σε ένα αρχείο XSLT που θα χρησιμοποιηθεί για τη μετατροπή των δεδομένων Koha MARCXML στην απαιτούμενη δομή/μορφή. Μπορεί να είναι χρήσιμο, για παράδειγμα, αν θέλετε να δημιουργηθούν κάποια συγκεκριμένα πεδία του Dublin Core αντί για τα προεπιλεγμένα.
include_items: Αν οριστεί σε 1, οι πληροφορίες για τα τεκμήρια θα συμπεριληφθούν στην απάντηση σύμφωνα με την αντιστοίχιση του πλαισίου MARC.
expanded_avs: Αν οριστεί σε 1, όλες οι κωδικοποιημένες τιμές θα επεκταθούν με περιγραφές. Αυτό περιλαμβάνει ονόματα βιβλιοθηκών, περιγραφές τύπου τεκμηρίου, περιγραφές καθιερωμένων τιμών και περιγραφές πηγών ταξινόμησης.
Όλες αυτές οι επιλογές μπορούν να χρησιμοποιηθούν με διαφορετικές καταχωρίσεις metadataPrefix, επιτρέποντας στα μέλη να ζητούν τη μία ή την άλλη.
Διακομιστής SRU
Το Koha υλοποιεί το πρωτόκολλο Search/Retrieve μέσω URL (SRU). Περισσότερες πληροφορίες για το ίδιο το πρωτόκολλο μπορείτε να βρείτε στη διεύθυνση http://www.loc.gov/standards/sru/. Η έκδοση που υλοποιείται είναι η έκδοση 1.1.
Επεξήγηση
Αν θέλετε να έχετε πληροφορίες σχετικά με την υλοποίηση του SRU σε έναν συγκεκριμένο διακομιστή, θα πρέπει να έχετε πρόσβαση στο αρχείο Explain χρησιμοποιώντας ένα αίτημα προς τον διακομιστή χωρίς καμία παράμετρο. Όπως το http://myserver.com:9999/biblios/. Η απάντηση από το διακομιστή είναι ένα αρχείο XML που θα πρέπει να μοιάζει με το παρακάτω και θα σας δώσει πληροφορίες σχετικά με τις προεπιλεγμένες ρυθμίσεις του διακομιστή SRU.
<zs:explainResponse>
<zs:version>1.1</zs:version>
<zs:record>
<zs:recordSchema>http://explain.z3950.org/dtd/2.0/</zs:recordSchema>
<zs:recordPacking>xml</zs:recordPacking>
<zs:recordData>
<explain xml:base="zebradb/explain-biblios.xml">
<!--
try stylesheet url: http://./?stylesheet=docpath/sru2.xsl
-->
<serverInfo protocol="SRW/SRU/Z39.50">
<host>biblibre</host>
<port>9999</port>
<database>biblios</database>
</serverInfo>
<databaseInfo>
<title lang="en" primary="true">Koha 3 Bibliographic SRU/SRW/Z39.50 server</title>
<description lang="en" primary="true">Koha 3 Bibliographic Server</description>
<links>
<sru>http://biblibre:9999</sru>
</links>
</databaseInfo>
<indexInfo>
<set name="cql" identifier="info:srw/cql-context-set/1/cql-v1.1">
<title>CQL Standard Set</title>
</set>
<index search="true" scan="true" sort="false">
<title lang="en">CQL Server Choice</title>
<map>
<name set="cql">serverChoice</name>
</map>
<map>
<attr type="1" set="bib1">text</attr>
</map>
</index>
<index search="true" scan="true" sort="false">
<title lang="en">CQL All</title>
<map>
<name set="cql">all</name>
</map>
<map>
<attr type="1" set="bib1">text</attr>
</map>
</index>
<!-- Record ID index -->
<index search="true" scan="true" sort="false">
<title lang="en">Record ID</title>
<map>
<name set="rec">id</name>
</map>
<map>
<attr type="1" set="bib1">rec:id</attr>
<attr type="4" set="bib1">3</attr>
</map>
</index>
Αναζήτηση
Αυτό το url: http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=reefs αποτελείται από τα ακόλουθα στοιχεία:
βασικό url του διακομιστή SRU : http://myserver.com:9999/biblios?
τμήμα αναζήτησης με τις 3 απαιτούμενες παραμέτρους : έκδοση, λειτουργία και ερώτημα. Οι παράμετροι μέσα στο τμήμα αναζήτησης πρέπει να είναι της μορφής key=value, και μπορούν να συνδυαστούν με τον χαρακτήρα &.
Μπορείτε να προσθέσετε προαιρετικές παραμέτρους στο ερώτημα, για παράδειγμα maximumRecords για τον μέγιστο αριθμό εγγραφών που θα επιστρέψει ο διακομιστής. Έτσι, http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=reefs&maximumRecords=5 θα λάβει μόνο τα 5 πρώτα αποτελέσματα από το διακομιστή.
Το κλειδί «operation» μπορεί να λάβει δύο τιμές: scan ή searchRetrieve.
Εάν operation=searchRetrieve, τότε το κλειδί αναζήτησης θα πρέπει να είναι ερώτημα. Όπως : operation=searchRetrieve&query=reefs
Εάν operation=scan, τότε το κλειδί αναζήτησης θα πρέπει να είναι scanClause. Όπως : operation=scan&scanClause=reefs
Το etc/zebradb/biblios/etc/bib1.att ορίζει τα ευρετήρια Zebra/3950 που υπάρχουν στο σύστημά σας. Για παράδειγμα, θα δείτε ότι έχουμε ευρετήρια για το Θέμα και για τον Τίτλο: att 21 Θέμα και att 4 Τίτλος αντίστοιχα.
In the pqf.properties file located under etc/zebradb/pqf.properties I see that an access point already uses my Subject index (index.dc.subject = 1=21) while another uses my Title index (index.dc.title = 1=4) I know this is my Subject index because as I’ve seen just before in my bib1.att file, it’s called with =1=21 in Z3950: so index.dc.subject = 1=21 correctly points to my Subject index. And Title was called with 1=4 so index.dc.title = 1=4 correctly points to my Title index. I can now construct my query just like I would in a search box, just preceding it with the «query» key: query=Subject=reefs and Title=coral searches «reefs» in the subject and «coral» in the title. The full url would be http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=Subject=reefs and Title=coral If I want to limit the result set to just 5 records, I can do http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=Subject=reefs and Title=coral&maximumRecords=5
Μπορώ επίσης να παίξω με την αποκοπή, τις σχέσεις κλπ. Αυτά ορίζονται επίσης στο αρχείο pqf.properties. Μπορώ να δω για παράδειγμα τις ιδιότητες της θέσης που ορίζονται ως εξής:
position.first = 3=1 6=1
# "first in field"
position.any = 3=3 6=1
# "any position in field"
Οπότε, για παράδειγμα, αν θέλω το «coral» να βρίσκεται στην αρχή του τίτλου, μπορώ να κάνω το εξής ερώτημα : http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=Title=coral first
Ανάκτηση
Η αναζήτησή μου για http://univ_lyon3.biblibre.com:9999/biblios?version=1.1&operation=searchRetrieve&query=coral reefs&maximumRecords=1 ανακτά μόνο μία εγγραφή. Η απόκριση μοιάζει ως εξής:
<zs:searchRetrieveResponse>
<zs:version>1.1</zs:version>
<zs:numberOfRecords>1</zs:numberOfRecords>
<zs:records>
<zs:record>
<zs:recordPacking>xml</zs:recordPacking>
<zs:recordData>
<record xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/ standards/marcxml/schema/MARC21slim.xsd">
<leader> cam a22 4500</leader>
<datafield tag="010" ind1=" " ind2=" ">
<subfield code="a">2-603-01193-6</subfield>
<subfield code="b">rel.</subfield>
<subfield code="d">159 F</subfield>
</datafield>
<datafield tag="020" ind1=" " ind2=" ">
<subfield code="a">FR</subfield>
<subfield code="b">00065351</subfield>
</datafield>
<datafield tag="101" ind1="1" ind2=" ">
<subfield code="c">ita</subfield>
</datafield>
<datafield tag="105" ind1=" " ind2=" ">
<subfield code="a">a z 00|y|</subfield>
</datafield>
<datafield tag="106" ind1=" " ind2=" ">
<subfield code="a">r</subfield>
</datafield>
<datafield tag="100" ind1=" " ind2=" ">
<subfield code="a">20091130 frey50 </subfield>
</datafield>
<datafield tag="200" ind1="1" ind2=" ">
<subfield code="a">Guide des récifs coralliens / A Guide to Coral Reefs</subfield>
<subfield code="b">Texte imprimé</subfield>
<subfield code="e">la faune sous-marine des coraux</subfield>
<subfield code="f">A. et A. Ferrari</subfield>
</datafield>
<datafield tag="210" ind1=" " ind2=" ">
<subfield code="a">Lausanne</subfield>
<subfield code="a">Paris</subfield>
<subfield code="c">Delachaux et Niestlé</subfield>
<subfield code="d">cop. 2000</subfield>
<subfield code="e">impr. en Espagne</subfield>
</datafield>
<datafield tag="215" ind1=" " ind2=" ">
<subfield code="a">287 p.</subfield>
<subfield code="c">ill. en coul., couv. ill. en coul.</subfield>
<subfield code="d">20 cm</subfield>
</datafield>
......
<idzebra>
<size>4725</size>
<localnumber>2</localnumber>
<filename>/tmp/nw10BJv9Pk/upd_biblio/exported_records</filename>
</idzebra>
</record>
</zs:recordData>
<zs:recordPosition>1</zs:recordPosition>
</zs:record>
</zs:records>
</zs:searchRetrieveResponse>
ILS-DI
Μέχρι στιγμής, η αυτο-τεκμηρίωση του ILS-DI είναι η πληρέστερη διεπαφή. Αφού ενεργοποιηθεί όπως περιγράφεται στην ενότητα :ref:`ILS-DI παράμετροι συστήματος <webservices-ils-di-system-preferences-label>`η τεκμηρίωση θα πρέπει να είναι διαθέσιμη στη διεύθυνση https://YOURKOHACATALOG/cgi-bin/koha/ilsdi.pl
Υπηρεσίες αναφορών JSON
Το Koha υλοποιεί μια υπηρεσία αναφορών JSON για κάθε αναφορά που αποθηκεύεται χρησιμοποιώντας τις λειτουργίες Καθοδηγούμενος οδηγός αναφορών ή Αναφορά από SQL.
Από προεπιλογή, οι αναφορές δεν θα είναι δημόσιες και θα είναι προσβάσιμες μόνο από πιστοποιημένους χρήστες. Εάν μια αναφορά οριστεί ρητά σε δημόσια, θα είναι προσβάσιμη χωρίς έλεγχο ταυτότητας από οποιονδήποτε. Αυτή η λειτουργία θα πρέπει να χρησιμοποιείται μόνο όταν τα δεδομένα μπορούν να διαμοιραστούν με ασφάλεια χωρίς να περιέχουν πληροφορίες μέλους.
Οι εκθέσεις είναι προσβάσιμες μέσω των ακόλουθων διευθύνσεων URL:
Δημόσιες εκθέσεις
OpacBaseURL/cgi-bin/koha/svc/report?id=REPORTID
Μη δημόσιες εκθέσεις
StaffBaseURL/cgi-bin/koha/svc/report?id=REPORTID
Υπάρχουν επίσης ορισμένες πρόσθετες διαθέσιμες παράμετροι:
Αντί της πρόσβασης στην έκθεση μέσω του REPORTID, μπορείτε επίσης να χρησιμοποιήσετε το όνομα της έκθεσης:
…/cgi-bin/koha/svc/report?name=REPORTNAME
Για ευκολότερη ανάπτυξη, υπάρχει επίσης η επιλογή να δημιουργηθεί μια έξοδος των δεδομένων με σχόλια. Θα δημιουργηθεί ένας πίνακας συνόλων που θα περιλαμβάνει τα ονόματα των πεδίων ως κλειδιά.
…/cgi-bin/koha/svc/report?name=REPORTNAME&annotated=1
Προσπάθεια έκδοσης RESTful API
Υπάρχει μια συνεχής προσπάθεια σύγκλισης των παραπάνω APIs σε ένα ενιαίο εκδοθέν σύνολο σύγχρονων τελικών σημείων RESTful, τα οποία τεκμηριώνονται με τη χρήση του προτύπου OpenAPI και είναι διαθέσιμα εξαρχής στη διεύθυνση https://YOURKOHACATALOG/api/v1/
Πλήρη τεκμηρίωση για αυτά τα API για την έκδοση του Koha που διαθέτετε μπορείτε να βρείτε στη διεύθυνση`api.koha-community.org <https://api.koha-community.org>`_.
Χορήγηση διαπιστευτηρίων OAuth2 client
Το Koha υποστηρίζει τη χορήγηση διαπιστευτηρίων OAuth2 client ως μέσο για την ασφάλεια του API για τη χρήση του από άλλα συστήματα, ώστε να τηρούνται τα τρέχοντα πρότυπα του κλάδου. Περισσότερες πληροφορίες σχετικά με το πρότυπο χορήγησης διαπιστευτηρίων OAuth2 client μπορείτε να βρείτε εδώ <https://auth0.com/docs/api-auth/grant/client-credentials>`_.
Διεπαφή διαχείρισης κλειδιών API για τα μέλη
Προκειμένου να δημιουργηθούν κλειδιά API για τα μέλη, η παράμετρος του συστήματος :ref:`RESTOAuth2ClientCredentials <restoauth2clientcredentials-label>`**πρέπει** να είναι ενεργοποιημένη για να εμφανιστεί η επιλογή σε μια εγγραφή μέλους.
Πλοηγηθείτε σε μια εγγραφή μέλους και επιλέξτε *Περισσότερα> Διαχείριση API κλειδιών *
Εάν δεν υπάρχουν κλειδιά API για ένα μέλος, θα εμφανιστεί ένα μήνυμα που θα σας προτρέπει να δημιουργήσετε ένα ζεύγος id/secret μέλους
Εισάγετε μια περιγραφή για το ζεύγος id/secret μέλους και επιλέξτε Αποθήκευση
Το Koha θα δημιουργήσει ένα ζεύγος id/secret μέλους για χρήση για σύνδεση στο Koha από άλλα συστήματα τρίτων ως πιστοποιημένο μέλος
Επιλέγοντας το πλήκτρο Ανάκληση δίπλα σε ένα ζεύγος διαπιστευτηρίων API, το συγκεκριμένο ζεύγος διαπιστευτηρίων θα καταστεί ανενεργό μέχρι να ενεργοποιηθεί εκ νέου
Δημιουργός εικόνας ραβδοκώδικα (barcode)
Το Koha παρέχει τη δυνατότητα δημιουργίας εικόνων ραβδοκώδικα (barcode) τόσο στη διεπαφή προσωπικού όσο και στo δημόσιο περιβάλλον. Και οι δύο απαιτούν την είσοδο του χρήστη για να χρησιμοποιήσει την υπηρεσία, ώστε να αποτραπεί η κατάχρηση από τρίτους.
- Για παράδειγμα:
/cgi-bin/koha/svc/barcode?barcode=123456789&type=UPCE
Η παραπάνω διεύθυνση URL θα δημιουργήσει μια εικόνα ραβδοκώδικα (barcode) για τον ραβδοκώδικα «123456789», χρησιμοποιώντας τη μορφή UPCE.
Οι διαθέσιμοι τύποι ραβδοκώδικα (barcode) είναι οι εξής: * Code39 * UPCE * UPCA * QRcode * NW7 * Matrix2of5 * ITF * Industrial2of5 * IATA2of5 * EAN8 * EAN13 * COOP2of5
Εάν δεν καθοριστεί τύπος, θα χρησιμοποιηθεί ο κωδικός 39.
Εξ ορισμού, η εικόνα του ραβδοκώδικα θα περιέχει και το κείμενο του ραβδοκώδικα. Εάν αυτό δεν είναι επιθυμητό, μπορεί να περάσει η παράμετρος «notext» για να καταστείλει αυτή τη συμπεριφορά.
Για παράδειγμα:
/cgi-bin/koha/svc/barcode?barcode=123456789¬ext=1
θα δημιουργήσει μια εικόνα ραβδοκώδικα (barcode) 123456789 χωρίς το κείμενο «123456789» από κάτω.
Αυτή η υπηρεσία μπορεί να χρησιμοποιηθεί για την ενσωμάτωση εικόνων ραβδοκώδικα (barcode) σε ειδοποιήσεις και σημειώματα που εκτυπώνονται από το πρόγραμμα περιήγησης και για την ενσωμάτωση του αριθμού της κάρτας του μέλους στον Δημόσιο Κατάλογο, ανάμεσα σε άλλες δυνατότητες.