NAME WebService::Kramerius::API4 - Class to Kramerius v4+ API. SYNOPSIS use WebService::Kramerius::API4; my $obj = WebService::Kramerius::API4->new(%params); my $item_json = get_item($item_id) my $item_children_json = get_item_children($item_id); my $item_siblings_json = get_item_siblings($item_id); my $item_streams_json = get_item_streams($item_id); my $item_stream = get_item_streams_one($item_id, $stream_id); my $item_image = get_item_image($item_id); my $item_preview_image = get_item_preview($item_id); my $thumb_image = get_item_thumb($item_id); my $foxml_xml = get_item_foxml($item_id); METHODS "new(%params)" Constructor. * "library_url" Library URL. This parameter is required. Default value is undef. * "output_dispatch" Output dispatch hash structure. Key is content-type and value is subroutine, which converts content to what do you want. Default value is blank hash array. "get_item($item_id)" Get item JSON structure. Returns JSON string when JSON output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_children($item_id)" Get item children JSON structure. Returns JSON string when JSON output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_siblings($item_id)" Get item siblings JSON structure. Returns JSON string when JSON output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_streams($item_id)" Get item streams JSON structure. Returns JSON string when JSON output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_streams_one($item_id, $stream_id)" Get item stream. Returns stream value when particular output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_image($item_id)" Get item image. Returns image when particular output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_preview($item_id)" Get item preview image. Returns image when particular output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_thumb($item_id)" Get item thumbnail image. Returns image when particular output dispatch doesn't set. Otherwise returns value from output dispatch. "get_item_foxml($item_id)" Get item foxml XML structure. Returns XML string when XML output dispatch doesn't set. Otherwise returns value from output dispatch. ERRORS new(): Parameter 'library_url' is required. From Class::Utils::set_params(): Unknown parameter '%s'. get_item(): Cannot get '%s' URL. get_item_children(): Cannot get '%s' URL. get_item_siblings(): Cannot get '%s' URL. get_item_streams(): Cannot get '%s' URL. get_item_streams_one(): Cannot get '%s' URL. get_item_image(): Cannot get '%s' URL. get_item_preview(): Cannot get '%s' URL. get_item_thumb(): Cannot get '%s' URL. get_item_foxml() Cannot get '%s' URL. EXAMPLE1 use strict; use warnings; use WebService::Kramerius::API4; if (@ARGV < 2) { print STDERR "Usage: $0 library_url work_id\n"; exit 1; } my $library_url = $ARGV[0]; my $work_id = $ARGV[1]; my $obj = WebService::Kramerius::API4->new( 'library_url' => $library_url, ); # Get item JSON structure. my $item_json = $obj->get_item($work_id); print $item_json."\n"; # Output for 'http://kramerius.mzk.cz/' and '314994e0-490a-11de-ad37-000d606f5dc6' # {"datanode":true,"context":[[{"pid":"uuid:5a2dd690-54b9-11de-8bcd-000d606f5dc6","model":"periodical"},{"pid":"uuid:303c91b0-490a-11de-921d-000d606f5dc6","model":"periodicalvolume"},{"pid":"uuid:bf1d5df0-49d8-11de-8cb4-000d606f5dc6","model":"periodicalitem"},{"pid":"uuid:314994e0-490a-11de-ad37-000d606f5dc6","model":"page"}]],"pid":"uuid:314994e0-490a-11de-ad37-000d606f5dc6","model":"page","handle":{"href":"http://kramerius.mzk.cz/search/handle/uuid:314994e0-490a-11de-ad37-000d606f5dc6"},"zoom":{"type":"zoomify","url":"http://kramerius.mzk.cz/search/zoomify/uuid:314994e0-490a-11de-ad37-000d606f5dc6"},"details":{"type":"TitlePage","pagenumber":"[1] \n "},"title":"[1]","iiif":"http://kramerius.mzk.cz/search/iiif/uuid:314994e0-490a-11de-ad37-000d606f5dc6","root_title":"Davidova houpačka","root_pid":"uuid:5a2dd690-54b9-11de-8bcd-000d606f5dc6","policy":"public"} EXAMPLE2 use strict; use warnings; use Data::Printer; use JSON; use WebService::Kramerius::API4; if (@ARGV < 2) { print STDERR "Usage: $0 library_url work_id\n"; exit 1; } my $library_url = $ARGV[0]; my $work_id = $ARGV[1]; my $obj = WebService::Kramerius::API4->new( 'library_url' => $library_url, 'output_dispatch' => { 'application/json' => sub { my $json = shift; return JSON->new->decode($json); }, }, ); # Get item JSON structure as Perl hash. my $item_json = $obj->get_item($work_id); p $item_json; # Output for 'http://kramerius.mzk.cz/' and '314994e0-490a-11de-ad37-000d606f5dc6' # \ { # context [ # [0] [ # [0] { # model "periodical", # pid "uuid:5a2dd690-54b9-11de-8bcd-000d606f5dc6" # }, # [1] { # model "periodicalvolume", # pid "uuid:303c91b0-490a-11de-921d-000d606f5dc6" # }, # [2] { # model "periodicalitem", # pid "uuid:bf1d5df0-49d8-11de-8cb4-000d606f5dc6" # }, # [3] { # model "page", # pid "uuid:314994e0-490a-11de-ad37-000d606f5dc6" # } # ] # ], # datanode JSON::PP::Boolean { # Parents Types::Serialiser::BooleanBase # public methods (0) # private methods (0) # internals: 1 # }, # details { # pagenumber "[1] # ", # type "TitlePage" # }, # handle { # href "http://kramerius.mzk.cz/search/handle/uuid:314994e0-490a-11de-ad37-000d606f5dc6" # }, # iiif "http://kramerius.mzk.cz/search/iiif/uuid:314994e0-490a-11de-ad37-000d606f5dc6", # model "page", # pid "uuid:314994e0-490a-11de-ad37-000d606f5dc6", # policy "public", # root_pid "uuid:5a2dd690-54b9-11de-8bcd-000d606f5dc6", # root_title "Davidova houpačka", # title "[1]", # zoom { # type "zoomify", # url "http://kramerius.mzk.cz/search/zoomify/uuid:314994e0-490a-11de-ad37-000d606f5dc6" # } # } EXAMPLE3 use strict; use warnings; use Data::Printer; use JSON; use WebService::Kramerius::API4; if (@ARGV < 2) { print STDERR "Usage: $0 library_url work_id\n"; exit 1; } my $library_url = $ARGV[0]; my $work_id = $ARGV[1]; my $obj = WebService::Kramerius::API4->new( 'library_url' => $library_url, 'output_dispatch' => { 'application/json' => sub { my $json = shift; return JSON->new->decode($json); }, }, ); # Get item streams JSON structure as Perl hash. my $item_streams_json = $obj->get_item_streams($work_id); p $item_streams_json; # Output for 'http://kramerius.mzk.cz/' and '314994e0-490a-11de-ad37-000d606f5dc6' # \ { # BIBLIO_MODS { # label "BIBLIO_MODS description of current object", # mimeType "text/xml" # }, # DC { # label "Dublin Core Record for this object", # mimeType "text/xml" # }, # IMG_FULL { # label "", # mimeType "image/jpeg" # }, # IMG_FULL_ADM { # label "Image administrative metadata", # mimeType "text/xml" # }, # IMG_PREVIEW { # label "", # mimeType "image/jpeg" # }, # IMG_THUMB { # label "", # mimeType "image/jpeg" # }, # TEXT_OCR { # label "", # mimeType "text/plain" # }, # TEXT_OCR_ADM { # label "Image administrative metadata", # mimeType "text/xml" # } # } DEPENDENCIES Class::Utils, Error::Pure, LWP::UserAgent. SEE ALSO WebService::Kramerius::API4::Struct Class to Kramerius v4+ API, which returns Perl structures instead raw data. REPOSITORY AUTHOR Michal Josef Špaček LICENSE AND COPYRIGHT © Michal Josef Špaček 2015-2017 BSD 2-Clause License VERSION 0.01