The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catmandu::FedoraCommons::Response - Perl model for generic Fedora Commons REST API responses

SYNOPSIS

  use Catmandu::FedoraCommons;
  
  my $fedora = Catmandu::FedoraCommons->new('http://localhost:8080/fedora','fedoraAdmin','fedoraAdmin');
  
  my $result = $fedora->findObjects(terms=>'*');
  
  die $resut->error unless $result->is_ok;
  
  my $obj = $result->parse_content;
  
  $result->is_ok;
  $result->error;
  $result->raw;
  $result->content_type;
  $result->length;
  $result->date;
  $result->parse_content();
  $result->parse_content($my_model);
  

DESCRIPTION

A Catmandu::FedoraCommons::Response gets returned for every Catmandu::FedoraCommons method. This response contains the raw HTTP content of a Fedora Commons request and can also be used to parse XML responses into Perl objects using the parse_content function. For more information on the Perl objects see the information in the Catmandu::FedoraCommons::Model packages.

METHODS

is_ok()

Returns true when the result Fedora Commons response contains no errors.

error()

Returns the error message of the Fedora Commons response if available.

parse_content($model)

Returns a Perl representation of the Fedora Commons response. Optionally a model object can be provided that implements a $obj->parse($bytes) method and returns a Perl object. If no model is provided then default models from the Catmandu::FedoraCommons::Model namespace are used.

 Example:

 package MyParser;
 
 sub new {
     my $class = shift;
     return bless {} , $class;
 }
 
 sub parse {
     my ($self,$bytes) = @_;
     ...
     return $perl
 }
 
 package main;
 
 my $fedora = Catmandu::FedoraCommons->new('http://localhost:8080/fedora','fedoraAdmin','fedoraAdmin');

 my $result = $fedora->findObjects(terms=>'*');
 
 my $perl = $result->parse_content(MyParser->new);
 

raw()

Returns the raw Fedora Commons response as a string.

content_type()

Returns the Content-Type of the Fedora Commons response.

length()

Returns the byte length of the Fedora Commons response.

date()

Returns the date of the Fedora Commons response.

AUTHORS

  • Patrick Hochstenbach, <patrick.hochstenbach at ugent.be>

SEE ALSO

Catmandu::Model::findObjects, Catmandu::Model::getObjectHistory, Catmandu::Model::getObjectPrifule, Catmandu::Model::listDatastreams, Catmandu::Model::listMethods