Υπηρεσίες ιστού

Koha provides a number of APIs allowing access to its data and functions.

OAI-PMH

Για το Open Archives Initiative-Protocol for Metadata Harvesting (OAI-PMH) υπάρχουν δύο ομάδες «συμμετεχόντων»: Οι πάροχοι δεδομένων και οι πάροχοι υπηρεσιών. Οι πάροχοι δεδομένων (ανοικτά αρχεία, αποθετήρια) παρέχουν δωρεάν πρόσβαση σε μεταδεδομένα και μπορούν, αλλά δεν είναι απαραίτητο, να προσφέρουν δωρεάν πρόσβαση σε πλήρη κείμενα ή άλλους πόρους. Το OAI-PMH παρέχει μια εύκολη στην εφαρμογή, με ελάχιστα εμπόδια, λύση για τους παρόχους δεδομένων. Οι πάροχοι υπηρεσιών χρησιμοποιούν τις διεπαφές OAI των παρόχων δεδομένων για τη συγκομιδή και την αποθήκευση μεταδεδομένων. Σημειώστε ότι αυτό σημαίνει ότι δεν υπάρχουν αιτήματα άμεσης αναζήτησης προς τους Παρόχους Δεδομένων- αντίθετα, οι υπηρεσίες βασίζονται στα δεδομένα που συλλέγονται μέσω του OAI-PMH.

Learn more about OAI-PMH at https://www.openarchives.org/pmh/

Koha can act as both Data Provider and Service Provider. This section documents its use as Data Provider. For information on using it as a Service Provider, see the OAI repositories section.

To enable OAI-PMH in Koha edit the OAI-PMH preference. Once enabled you can visit https://opac.example.org/cgi-bin/koha/oai.pl to see your file.

Από προεπιλογή, το Koha δεν θα συμπεριλάβει πληροφορίες αντιτύπων στα σύνολα αποτελεσμάτων OAI-PMH, αλλά μπορούν να προστεθούν χρησιμοποιώντας την επιλογή include_items στο αρχείο ρυθμίσεων που συνδέεται με το OAI-PMH:ConfFile.

Note that the sample conf file below contains entries for both marc21 and marcxml. The metadata prefix marc21 is the one recommended by the OAI-PMH guidelines <https://www.openarchives.org/OAI/2.0/guidelines-marcxml.htm>. The prefix marcxml is supported, but it is only included for backwards compatibility with older systems. The metadata prefix oai_dc is mandated by the standard as a fallback.

Παράδειγμα αρχείου 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: https://www.loc.gov/MARC21/slim https://www.loc.gov/standards/marcxml/schema/MARC21slim
     schema: https://www.loc.gov/MARC21/slim https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
     include_items: 1
  marcxml:
     metadataPrefix: marcxml
     metadataNamespace: https://www.loc.gov/MARC21/slim https://www.loc.gov/standards/marcxml/schema/MARC21slim
     schema: https://www.loc.gov/MARC21/slim https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd
     include_items: 1
  oai_dc:
     metadataPrefix: oai_dc
     metadataNamespace: https://www.openarchives.org/OAI/2.0/oai_dc/
     schema: https://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 implements the Search/Retrieve via URL (SRU) protocol. More information about the protocol itself can be found at https://www.loc.gov/standards/sru/. The version implemented is version 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>

Ανάκτηση

Η αναζήτησή μου για 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

As of writing, the self documenting ILS-DI is the most complete interface. After it has been enabled as described in the ILS-DI system preferences section, the documentation should be available at https://opac.example.org/cgi-bin/koha/ilsdi.pl

Υπηρεσίες εκθέσεων JSON

Το Koha υλοποιεί μια υπηρεσία εκθέσεων JSON για κάθε αποθηκευμένη έκθεση χρησιμοποιώντας τις λειτουργίες Οδηγός καθοδηγούμενων εκθέσεων ή Έκθεση από SQL.

Από προεπιλογή, οι εκθέσεις δεν θα είναι δημόσιες και θα είναι προσβάσιμες μόνο από πιστοποιημένους χρήστες. Εάν μια έκθεση οριστεί ρητά ως δημόσια, θα είναι προσβάσιμη χωρίς έλεγχο ταυτότητας από οποιονδήποτε. Αυτή η λειτουργία θα πρέπει να χρησιμοποιείται μόνο όταν τα δεδομένα μπορούν να διαμοιραστούν με ασφάλεια χωρίς να περιέχουν πληροφορίες μελών.

Οι εκθέσεις είναι προσβάσιμες μέσω των ακόλουθων διευθύνσεων URL:

  • Public reports: https://opac.example.org/cgi-bin/koha/svc/report?id=REPORTID

  • Non-public reports: https://staff-interface.example.org/cgi-bin/koha/svc/report?id=REPORTID

Υπάρχουν επίσης ορισμένες πρόσθετες διαθέσιμες παράμετροι:

  • Instead of accessing the report by REPORTID you can also use the report’s name: https://opac.example.org/cgi-bin/koha/svc/report?name=REPORTNAME or https://staff-interface.example.org/cgi-bin/koha/svc/report?name=REPORTNAME

  • For easier development there is also an option to generate an annotated output of the data. It will generate an array of hashes that include the field names as keys: https://opac.example.org/cgi-bin/koha/svc/report?name=REPORTNAME&annotated=1 or https://staff-interface.example.org/cgi-bin/koha/svc/report?name=REPORTNAME&annotated=1

Προσπάθεια έκδοσης RESTful API

There is an ongoing effort to converge the APIs above into a single versioned set of modern RESTful endpoints documented using the OpenAPI standard and available by default under https://opac.example.org/api/v1/

Πλήρη τεκμηρίωση για αυτά τα API για την έκδοση του Koha που διαθέτετε μπορείτε να βρείτε στη διεύθυνση api.koha-community.org.

Χορήγηση διαπιστευτηρίων OAuth2 client

Koha supports the OAuth2 client credentials grant as a means to secure the API for using it from other systems to adhere to current industry standards. More information on the OAuth2 client credentials grant standard can be found here.

Διεπαφή διαχείρισης κλειδιών API για τα μέλη

Προκειμένου να δημιουργηθούν κλειδιά API για τα μέλη, η παράμετρος του συστήματος RESTOAuth2ClientCredentials πρέπει να είναι ενεργοποιημένη για να εμφανιστεί η επιλογή σε μια εγγραφή μέλους.

  1. Πλοηγηθείτε σε μια εγγραφή μέλους και επιλέξτε Περισσότερα> Διαχείριση API κλειδιών

image1336

  1. Εάν δεν υπάρχουν κλειδιά API για ένα μέλος, θα εμφανιστεί ένα μήνυμα που θα σας προτρέπει να δημιουργήσετε ένα ζεύγος id/secret μέλους

image1337

  1. Εισάγετε μια περιγραφή για το ζεύγος id/secret μέλους και επιλέξτε Αποθήκευση

image1338

  1. Το Koha θα δημιουργήσει ένα ζεύγος id/secret μέλους για χρήση για σύνδεση στο Koha από άλλα συστήματα τρίτων ως πιστοποιημένο μέλος

    image1339

  2. Επιλέγοντας το κουμπί της Ανάκλησης δίπλα σε ένα ζεύγος διαπιστευτηρίων API, το συγκεκριμένο ζεύγος διαπιστευτηρίων θα καταστεί ανενεργό μέχρι να ενεργοποιηθεί εκ νέου

Δημιουργός εικόνας ραβδοκώδικα (barcode)

Koha provides a barcode image generator on both the staff interface and the OPAC. Both require a user to be logged in to use the service, to prevent abuse by third parties.

Για παράδειγμα :

https://opac.example.org/cgi-bin/koha/svc/barcode?barcode=123456789&type=UPCE

or

https://staff-interface.example.org/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» για να καταστείλει αυτή τη συμπεριφορά.

Για παράδειγμα :

https://opac.example.org/cgi-bin/koha/svc/barcode?barcode=123456789&notext=1

or

https://staff-interface.example.org/cgi-bin/koha/svc/barcode?barcode=123456789&notext=1

θα δημιουργήσει μια εικόνα ραβδοκώδικα (barcode) 123456789 χωρίς το κείμενο «123456789» από κάτω.

This service can be used to embed barcode images into slips and notices printed from the browser, and to embed a patron card number into the OPAC, among other possibilities.