Catmandu-OCLC

 view release on metacpan or  search on metacpan

lib/Catmandu/OCLC/xID.pm  view on Meta::CPAN

use JSON::MaybeXS;

sub query {
    my $query   = shift;
    my $type    = shift;
    my $method  = shift;

    die "usage: query(query,type,method)" unless defined $query &&
                                                       defined $type &&
                                                       defined $method;
    my $endpoint;

    if ($type eq 'xisbn') {
    	$endpoint = 'http://xisbn.worldcat.org/webservices/xid/isbn';
    }
    elsif ($type eq 'xissn') {
    	$endpoint = 'http://xisbn.worldcat.org/webservices/xid/issn';
    }
    elsif ($type eq 'xstandardNumber') {
   		$endpoint = 'http://xisbn.worldcat.org/webservices/xid/oclcnum';
    }
    else {
    	$endpoint = 'http://xisbn.worldcat.org/webservices/xid/isbn';
    }

    my $request  = sprintf "%s/%s?method=%s&format=json&fl=*"
                            , $endpoint
                            , uri_escape($query)
                            , $method;

    my $response = get($request);
    my $json     = JSON::MaybeXS->new->utf8(0);

    my $perl;
    eval {
        $perl = $json->decode($response);
    };



( run in 0.283 second using v1.01-cache-2.11-cpan-b61123c0432 )