WebService::Kramerius::API4::Item - Class to item endpoint in Kramerius v4+ API.
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);
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.
get_item_siblings
my $item_siblings_json = $obj->get_item_siblings($item_id);
Get item siblings JSON structure.
get_item_streams
my $item_streams_json = $obj->get_item_streams($item_id);
Get item streams JSON structure.
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.
get_item_thumb
my $thumb_image = $obj->get_item_thumb($item_id);
Get item thumbnail image.
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.
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.
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 # }
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" # } # }
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" # } # }
WebService::Kramerius::API4::Base.
https://github.com/michal-josef-spacek/WebService-Kramerius-API4
Michal Josef Špaček mailto:skim@cpan.org
http://skim.cz
© Michal Josef Špaček 2015-2023
BSD 2-Clause License
0.02
To install WebService::Kramerius::API4, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::Kramerius::API4
CPAN shell
perl -MCPAN -e shell install WebService::Kramerius::API4
For more information on module installation, please visit the detailed CPAN module installation guide.