Catmandu-VIAF
view release on metacpan or search on metacpan
lib/Catmandu/VIAF/API/ID.pm view on Meta::CPAN
if (!$response->is_success) {
if ($response->code == 404) {
return {};
} else {
Catmandu::HTTPError->throw({
code => $response->code,
message => $response->status_line,
url => $response->request->uri,
method => $response->request->method,
request_headers => [],
request_body => $response->request->decoded_content,
response_headers => [],
response_body => $response->decoded_content
});
return {};
}
}
my $rdf = $response->decoded_content;
my $document = sprintf('<?xml version="1.0" encoding="UTF-8"?>%s', $rdf);
my $parser = Catmandu::VIAF::API::Parse->new(items => $document);
return $parser->xml();
}
1;
__END__
lib/Catmandu/VIAF/API/Query.pm view on Meta::CPAN
my $url = sprintf('https://www.viaf.org/viaf/search?query=%s&httpAccept=application/json', $self->query);
my $response = $self->client->get($url);
if (!$response->is_success) {
Catmandu::HTTPError->throw({
code => $response->code,
message => $response->status_line,
url => $response->request->uri,
method => $response->request->method,
request_headers => [],
request_body => $response->request->decoded_content,
response_headers => [],
response_body => $response->decoded_content,
});
return [];
}
my $results = $self->parse($response->decoded_content);
$results = $results->{'searchRetrieveResponse'}->{'records'};
my $records = [];
foreach my $result (@{$results}) {
push @{$records}, $self->get_from_id($result->{'record'}->{'recordData'}->{'viafID'});
}
return $records;
}
sub get_from_id {
my ($self, $id) = @_;
( run in 0.308 second using v1.01-cache-2.11-cpan-05444aca049 )