API-CLI

 view release on metacpan or  search on metacpan

lib/API/CLI/Request.pm  view on Meta::CPAN

    $self->url($url);

    my $req = HTTP::Request->new( $self->method => $self->url );
    $self->req($req);

    return $self;
}

sub request {
    my ($self) = @_;

    my $ua = LWP::UserAgent->new;
    my $req = $self->req;
    my $res = $ua->request($req);
    my $code = $res->code;
    my $content = $res->decoded_content;
    my $status = $res->status_line;

    my $ct = $res->content_type;
    my $out = $self->verbose ? "Response: $status ($ct)\n" : undef;
    my $data;
    my $ok = 0;
    if ($res->is_success) {
        $ok = 1;
        if ($ct eq 'application/json') {
            my $coder = JSON::XS->new->ascii->pretty->allow_nonref;
            $data = $coder->decode($content);
            $content = $coder->encode($data);
        }
    }

    return ($ok, $out, $content);
}

sub content {
    shift->req->content(@_);
}

sub header {
    shift->req->header(@_);
}

1;

__END__

=pod

=head1 NAME

API::CLI::Request = Does the actual request to the API

=head1 METHODS

=over 4

=item content

    $req->content($data);

Sets POST/PUT/PATCH content


=item from_openapi

=item header

=item method

=item openapi

=item path

=item req

=item request

=item url

=item verbose

=back

=cut



( run in 1.299 second using v1.01-cache-2.11-cpan-39bf76dae61 )