Υπηρεσίες διαδικτύου

Το 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>

Ανάκτηση

Η αναζήτησή μου για 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>`**πρέπει** να είναι ενεργοποιημένη για να εμφανιστεί η επιλογή σε μια εγγραφή μέλους.

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

image1336

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

image1337

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

image1338

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

    image1339

  2. Επιλέγοντας το πλήκτρο Ανάκληση δίπλα σε ένα ζεύγος διαπιστευτηρίων 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&notext=1

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

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