cappadona / Net-Z3950-FOLIO

A Z39.50 server for FOLIO bibliographic data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

z2folio - the Z39.50-to-FOLIO gateway

Copyright (C) 2018-2020 The Open Library Foundation

This software is distributed under the terms of the Apache License, Version 2.0. See the file "LICENSE" for more information.

Introduction

z2folio is a Z39.50 server for FOLIO bibliographic and holdings data, supporting record retrieval in USMARC, OPAC and XML formats. The functionality is all provided by the Net::Z3950::FOLIO library, which is also part of this distribution. It is written in Perl, and follows standard Perl-module conventions.

Installation

To install this module type the following:

perl Makefile.PL
make
make test
make install

On some platforms (e.g. my MacBook running MacOS 10.13.6 with YAZ and libxml2 installed from Homebrew 1.8.4, installing the prerequisite SimpleServer with cpan install Net::Z3950::SimpleServer fails. I fixed it using:

C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.4_3/include/libxml2 cpan install Net::Z3950::SimpleServer

Running

If you don't want to install, you can run directly from the development checkout as:

perl -I lib bin/z2folio -c etc/config.json -- -f etc/yazgfs.xml

Building and running from Docker

terminal1$ docker build -t zfolio .
terminal1$ docker run -it --rm -p9997:9997 -e OKAPI_PASSWORD=swordfish --name run-zfolio zfolio

terminal2$ yaz-client @:9997
Z> find @attr 1=4 a
Z> format opac
Z> show 1

Authentication

Whichever approach to running the server you prefer, the default configuration file specifies that the password used to authenticate onto the back-end FOLIO system must be specified in the FOLIO_PASSWORD environment variable. You can provide that however seems best to you -- e.g. injecting it into a Docker container with the -e name=value as above -- or indeed use a different configuration file that hardwires the credentials.

Access via SRU

Thanks to the magic of the protocol-polyglot YAZ GFS, the FOLIO Z39.50 server also serves the SRU (REST-like) and SRW (SOAP-based) protocols. For example, if running the server on your local host, you can use the following to obtain an XML-formatted OPAC record containing both bibliographic metadata in MARCXML format and holdings-and-item information such as might be used by an OPAC.

http://localhost:9997/sru/TEST?version=1.1&operation=searchRetrieve&query=title=a&maximumRecords=1&recordSchema=opac

Additional information

Other documentation

Other modules are described, with further FOLIO Developer documentation at dev.folio.org

Issue tracker

See project ZF at the FOLIO issue tracker.

About

A Z39.50 server for FOLIO bibliographic data

License:Apache License 2.0


Languages

Language:Perl 91.2%Language:XSLT 7.6%Language:Dockerfile 1.2%