Catmandu-VIAF
view release on metacpan or search on metacpan
lib/Catmandu/VIAF/API/ID.pm view on Meta::CPAN
32333435363738394041424344454647484950515253545556
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
32333435363738394041424344454647484950515253545556575859
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.290 second using v1.01-cache-2.11-cpan-05444aca049 )