वेब सेवाएँ
कोहा कई एपीआई प्रदान करता है जो इसे डेटा और कार्यों तक पहुंच प्रदान करता है।
OAI-PMH
मेटाडाटा कटाई के लिए ओपन अभिलेखागार पहल प्रोटोकॉल (OAI-PMH) के लिए 'प्रतिभागियों' के दो समूह हैं: डेटा प्रदाता और सेवा प्रदाता। डेटा प्रदाता (खुला अभिलेखागार, खजाने) मेटाडाटा के लिए स्वतंत्र पहुँच प्रदान करते हैं, और हो सकता है, लेकिन जरूरी नहीं है, पूर्ण ग्रंथों या अन्य संसाधनों के लिए स्वतंत्र पहुँच प्रदान करते हैं। OAI-PMH को लागू करने के लिए डेटा प्रदाताओं के लिए, कम बाधा समाधान के लिए एक आसान प्रदान करता है। सेवा प्रदाता फसल और दुकान मेटाडाटा के लिए डेटा प्रदाताओं की OAI इंटरफेस का उपयोग करें। नोट: यह मतलब है कि डेटा प्रदाता के लिए कोई लाइव खोज अनुरोधों देखते हैं कि; बल्कि, सेवाओं OAI-PMH के माध्यम से काटा डेटा के आधार पर कर रहे हैं.
ओएआई-पीएमएच के बारे में और जानें: http://www.openarchives.org/pmh/
वर्तमान में कोहा केवल एक डेटा प्रदाता के रूप में कार्य कर सकता है। यह अन्य रिपॉजिटरी से कटाई नहीं कर सकता है। अन्य रिपॉजिटरी से कोहा हार्वेस्ट होने के लिए सबसे बड़ा ठोकर यह है कि मार्क एकमात्र मेटाडेटा प्रारूप है जो कोहा मूल रूप से अनुक्रमित करता है।
कोहा में ओएआई-पीएमएच को सक्षम करने के लिए इसे संपादित करें :ref:`ओएआई-पीएमएच<oai-pmh-pref-label>' वरीयता। एक बार सक्षम होने पर आप अपनी फ़ाइल देखने के लिए http: //YOURKOHACATALOG/cgi-bin/koha/oai.pl पर जा सकते हैं।
डिफ़ॉल्ट रूप से कोहा में ओएआई-पीएमएच परिणाम सेट में आइटम जानकारी शामिल नहीं होगी, लेकिन इन्हें शामिल कॉन्फ़िगरेशन फ़ाइल में include_items विकल्प का उपयोग करके जोड़ा जा सकता है OAI-PMH:ConfFile.
ध्यान दें कि नीचे दी गई नमूना कॉन्फ्रेंस फ़ाइल में MARC21 और MARCXML दोनों शामिल हैं, क्योंकि MARC21 मेटाडेटा उपसर्ग है, जिसे `OAI-PMH दिशानिर्देश <https://www.openarchives.org/OAI/2.0/guidelines-marcxml.htm>`_जबकि Marcxml कोहा 23.11 से पहले नमूने में एकमात्र था (और Marc21 के लिए समर्थन कोहा 17.05 में जोड़ा गया था)।
नमूना ओएआई 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
The options are:
xsl_file: Path to an XSLT file that will be used for transforming the Koha MARCXML data into the needed structure/format. It can be useful, for example, if you need some specific Dublin Core fields to be generated instead of just the default ones.
include_items: If set to 1, item information will be included in the response according to the MARC framework's mapping.
expanded_avs: If set to 1, all coded values will the expanded with descriptions. This includes library names, item type descriptions, authorized value descriptions and classification source descriptions.
All these options can be used with different metadataPrefix entries, allowing the consumers to request one or the other.
एसआरयू सर्वर
कोहा यूआरएल (एसआरयू) प्रोटोकॉल के माध्यम से खोज / पुनर्प्राप्ति लागू करता है। प्रोटोकॉल के बारे में अधिक जानकारी http://www.loc.gov/standards/sru/ पर मिल सकती है। लागू संस्करण संस्करण 1.1 है।
योजनाएँ
यदि आप किसी दिए गए सर्वर पर एसआरयू के कार्यान्वयन के बारे में जानकारी चाहते हैं, तो आपको बिना किसी पैरामीटर के सर्वर के अनुरोध का उपयोग करके स्पष्टीकरण फ़ाइल तक पहुंच प्राप्त करनी चाहिए। Http://myserver.com:9999/biblios/ की तरह। सर्वर से प्रतिक्रिया एक एक्सएमएल फ़ाइल है जो निम्न की तरह दिखनी चाहिए और आपको एसआरयू सर्वर की डिफ़ॉल्ट सेटिंग्स के बारे में जानकारी देगी।
<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://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=reefs निम्नलिखित तत्वों से बना है:
एसआरयू सर्वर के आधार यूआरएल: http://myserver.com:9999/biblios?
3 आवश्यक पैरामीटर के साथ खोज भाग: संस्करण, संचालन और क्वेरी। खोज भाग के पैरामीटर कुंजी=मान फ़ॉर्म का होना चाहिए, और इसे और चरित्र के साथ जोड़ा जा सकता है।
कोई क्वेरी में वैकल्पिक पैरामीटर जोड़ सकता है, उदाहरण के लिए अधिकतम रिकॉर्ड्स सर्वर द्वारा लौटाए जाने वाले रिकॉर्ड्स की अधिकतम संख्या दर्शाता है। तो http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=reefs&maximumRecords=5 केवल सर्वर से पहले 5 परिणाम परिणाम प्राप्त करेंगे।
इस "operation"कुंजी के दो मान ले सकते हैं: स्कैन या खोजरिटराइव
यदि operation=searchRetrieve, तो खोज कुंजी क्वेरी होना चाहिए। जैसे की :operation=searchRetrieve&query=reefs
If operation=scan, तो खोज कुंजी स्कैनक्लोज होना चाहिए। जैसे की :operation=scan&scanClause=reefs
etc/zebradb/biblios/etc/bib1.att defines Zebra/3950 अनुक्रमित है कि अपने सिस्टम पर मौजूद परिभाषित करता है। उदाहरण के लिए कि देखेंगे कि हमारे पास इस विषय और शीर्षक के लिए अनुक्रमण है: att 21 विषय और att 4 शीर्षक क्रमशः।
etc/zebradb/pqf.properties के अंतर्गत स्थित pqf.properties फ़ाइल में मैं देखता हूं कि एक एक्सेस पॉइंट पहले से ही मेरे विषय सूचकांक ((index.dc.subject = 1=21) का उपयोग करता है जबकि दूसरा मेरा शीर्षक अनुक्रमणिका (index.dc.title = 1=4) मुझे पता है कि यह मेरा विषय सूचकांक है क्योंकि जैसा कि मैंने अपनी bib1.att फ़ाइल में पहले देखा है, इसे Z3950 में = 1 = 21 के साथ बुलाया गया है: इसलिए index.dc.subject = 1 = 21 सही ढंग से मेरे लिए इंगित करता है विषय सूचकांक और शीर्षक को 1 = 4 के साथ बुलाया गया था इसलिए index.dc.title = 1=4 मेरे शीर्षक सूचकांक को सही ढंग से इंगित करता है। अब मैं अपनी क्वेरी का निर्माण कर सकता हूं जैसे कि मैं एक खोज बॉक्स में, बस "क्वेरी" कुंजी से पहले: query=Subject=reefs और Title=coral खोज में "रीफ्स" और शीर्षक में "कोरल" खोजता हूं। पूरा यूआरएल http://myserver.com:9999/biblios?version=1.1&operation=searchRetrieve&query=Subject=reefs और Title=coral यदि मैं परिणाम सेट को केवल 5 रिकॉर्ड तक सीमित करना चाहता हूं, तो मैं कर सकता हूं 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"
तो उदाहरण के तौर पर यदि मैं शीर्षक की शुरुआत में "कोरल" होना चाहता हूं, तो मैं यह प्रश्न कर सकता हूं: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 पर उपलब्ध होना चाहिए
जेएसओएन रिपोर्ट सेवा
कोहा का उपयोग करके सहेजी गई प्रत्येक रिपोर्ट के लिए जेएसओएन रिपोर्ट सेवा लागू करता है :ref:`निर्देशित रिपोर्ट विज़ार्ड <guided-report-wizard-label>' या :ref:`एसक्यूएल <report-from-sql-label>' फीचर्स से रिपोर्ट करें।
डिफ़ॉल्ट रिपोर्ट द्वारा गैर-सार्वजनिक और प्रमाणित उपयोगकर्ताओं द्वारा केवल पहुंच योग्य होगा। यदि कोई रिपोर्ट स्पष्ट रूप से * सार्वजनिक * पर सेट की गई है तो यह किसी के द्वारा प्रमाणीकरण के बिना पहुंच योग्य होगी। इस सुविधा का केवल तभी उपयोग किया जाना चाहिए जब डेटा सुरक्षित रूप से साझा किया जा सके, जिसमें कोई संरक्षक जानकारी न हो।
निम्नलिखित यूआरएल का उपयोग करके रिपोर्टों का उपयोग किया जा सकता है:
सार्वजनिक रिपोर्ट
OpacBaseURL/cgi-bin/koha/svc/report?id=REPORTID
गैर-सार्वजनिक रिपोर्ट
StaffBaseURL/cgi-bin/koha/svc/report?id=REPORTID
कुछ अतिरिक्त पैरामीटर भी उपलब्ध हैं:
रिपोर्ट द्वारा रिपोर्ट तक पहुंचने के बजाय आप रिपोर्ट के नाम का भी उपयोग कर सकते हैं:
.../cgi-bin/koha/svc/report?name=REPORTNAME
आसान विकास के लिए डेटा के एनोटेटेड आउटपुट उत्पन्न करने का विकल्प भी है। यह हैश की एक सरणी उत्पन्न करेगा जिसमें फ़ील्ड नाम कुंजी के रूप में शामिल होंगे।
.../cgi-bin/koha/svc/report?name=REPORTNAME&annotated=1
संस्करणित रीस्टफुल एपीआई प्रयास
ओपनएपीआई मानक का उपयोग करके दस्तावेज किए गए आधुनिक रीस्टफुल एंडपॉइंट्स के एक संस्करण संस्करण में उपरोक्त एपीआई को एकजुट करने के लिए एक सतत प्रयास है और डिफ़ॉल्ट रूप से उपलब्ध है https://YOURKOHACATALOG/api/v1/
OAuth2 क्लाइंट प्रमाण-पत्र अनुदान
कोहा OAuth2 क्लाइंट क्रेडेंशियल अनुदान को अन्य सिस्टम से मौजूदा उद्योग मानकों का पालन करने के लिए एपीआई सुरक्षित करने के साधन के रूप में अनुदान देता है। OAuth2 क्लाइंट क्रेडेंशियल्स मानक मानक प्रदान करने के बारे में अधिक जानकारी यहां मिल सकती है <https://auth0.com/docs/api-auth/grant/client-credentials>`_.
संरक्षक के लिए एपीआई कुंजी प्रबंधन इंटरफ़ेस
एपीआई कुंजियों के लिए संरक्षक के लिए बनाने के लिए, सिस्टम वरीयता RESTOAuth2ClientCredentials must को एक संरक्षक रिकॉर्ड में दिखाई देने के विकल्प के लिए सक्षम होना चाहिए।
एक संरक्षक रिकॉर्ड पर नेविगेट करें और *अधिक> एपीआई कुंजी प्रबंधित करें *
यदि संरक्षक के लिए कोई एपीआई कुंजी मौजूद नहीं है तो क्लाइंट आईडी / गुप्त जोड़ी उत्पन्न करने के लिए एक संदेश होगा
क्लाइंट आईडी / गुप्त जोड़ी के लिए विवरण दर्ज करें और सहेजें पर क्लिक करें
कोहा अन्य क्लाइंट आईडी सिस्टम से कोहा से कनेक्ट करने के लिए एक अधिकृत आईडी के रूप में उपयोग करने के लिए क्लाइंट आईडी / गुप्त जोड़ी उत्पन्न करेगा
एपीआई क्रेडेंशियल जोड़ी के बगल में रिवोक बटन पर क्लिक करने से प्रतिक्रिया प्राप्त होने तक विशिष्ट क्रेडेंशियल जोड़ी निष्क्रिय हो जाएगी
बारकोड छवि जनरेटर
कोहा स्टाफ इंटरफ़ेस और सार्वजनिक इंटरफ़ेस दोनों पर एक बारकोड छवि जनरेटर प्रदान करता है। दोनों को सेवा का उपयोग करने के लिए तीसरे पक्ष द्वारा दुरुपयोग को रोकने के लिए एक उपयोगकर्ता की आवश्यकता होती है।
- उदाहरण के लिए:
/cgi-bin/koha/svc/barcode?barcode=123456789&type=UPCE
ऊपर URL बारकोड "123456789" के लिए एक बारकोड छवि उत्पन्न करेगा, UPCE बारकोड प्रारूप का उपयोग करेगा।
उपलब्ध बारकोड प्रकार हैं: * Code39 * UPCE * UPCA * QRcode * NW7 * Matrix2of5 * ITF * Industrial2of5 * IATA2of5 * EAN8 * EAN13 * COOP2of5
यदि कोई प्रकार निर्दिष्ट नहीं है, तो कोड39 का उपयोग किया जाएगा।
डिफ़ॉल्ट रूप से, बारकोड छवि में बारकोड का पाठ भी शामिल होगा। यदि यह वांछित नहीं है, तो इस व्यवहार को दबाने के लिए "नोटटेक्स" पैरामीटर पारित किया जा सकता है।
उदाहरण के लिए:
/cgi-bin/koha/svc/barcode?barcode=123456789¬ext=1
इसके नीचे "123456789" पाठ के बिना एक बारकोड छवि 123456789 उत्पन्न करेगा।
इस सेवा का उपयोग बारकोड छवियों को ब्राउज़र से मुद्रित स्लिप और नोटिस में और अन्य संभावनाओं के बीच ओपेक में संरक्षक कार्डनंबर को एम्बेड करने के लिए किया जा सकता है।