NAME
WebService::Kramerius::API4::Item - Class to item endpoint in Kramerius v4+ API.
SYNOPSIS
use WebService::Kramerius::API4::Item;
my $obj = WebService::Kramerius::API4::Item->new(%params);
my $item_json = $obj->get_item($item_id)
my $item_children_json = $obj->get_item_children($item_id);
my $item_siblings_json = $obj->get_item_siblings($item_id);
my $item_streams_json = $obj->get_item_streams($item_id);
my $item_stream = $obj->get_item_streams_one($item_id, $stream_id);
my $item_image = $obj->get_item_image($item_id);
my $item_preview_image = $obj->get_item_preview($item_id);
my $thumb_image = $obj->get_item_thumb($item_id);
my $foxml_xml = $obj->get_item_foxml($item_id);
METHODS
new
my $obj = WebService::Kramerius::API4::Item->new(%params);
Constructor.
Returns instance of object.
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
my $item_json = $obj->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
my $item_children_json = $obj->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
my $item_siblings_json = $obj->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
my $item_streams_json = $obj->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
my $item_stream = $obj->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
my $item_image = $obj->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
my $item_preview_image = $obj->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
my $thumb_image = $obj->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
my $foxml_xml = $obj->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::Item;
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::Item->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', pretty print
# {
# "dnnt-labels": [
# "dnnto"
# ],
# "datanode": true,
# "pid": "uuid:314994e0-490a-11de-ad37-000d606f5dc6",
# "handle": {
# "href": "https://kramerius.mzk.cz/search/handle/uuid:314994e0-490a-11de-ad37-000d606f5dc6"
# },
# "zoom": {
# "type": "zoomify",
# "url": "https://kramerius.mzk.cz/search/zoomify/uuid:314994e0-490a-11de-ad37-000d606f5dc6"
# },
# "title": "[1]",
# "iiif": "https://kramerius.mzk.cz/search/iiif/uuid:314994e0-490a-11de-ad37-000d606f5dc6",
# "collections": [
# "vc:7f5e94b5-7b6a-4a48-acaa-059096e4f1ae"
# ],
# "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"
# }
# ]
# ],
# "model": "page",
# "details": {
# "type": "TitlePage",
# "pagenumber": "[1] \n "
# },
# "root_title": "Davidova houpačka",
# "root_pid": "uuid:5a2dd690-54b9-11de-8bcd-000d606f5dc6",
# "policy": "private",
# "dnnt": true
# }
EXAMPLE2
use strict;
use warnings;
use Data::Printer;
use JSON;
use WebService::Kramerius::API4::Item;
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::Item->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::Item;
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::Item->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
WebService::Kramerius::API4::Base.
REPOSITORY
https://github.com/michal-josef-spacek/WebService-Kramerius-API4
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© Michal Josef Špaček 2015-2023
BSD 2-Clause License
VERSION
0.02