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

NAME

Net::Async::Webservice::Common::WithRequestWrapper - helper methods to perform HTTP request

VERSION

version 0.01_4

SYNOPSIS

  package My::WS::Client {
   use Moo;
   with 'Net::Async::Webservice::Common::WithUserAgent';
   with 'Net::Async::Webservice::Common::WithRequestWrapper';
  }

  my $loop = IO::Async::Loop->new;
  my $c = My::WS::Client->new({loop=>$loop});
  $c->post('https://api.webservice.whatever/',$content)->then(sub{
    my ($response_body) = @_;
    say "Got <$response_body>";
    return Future->wrap();
  })->get;

DESCRIPTION

This role provides a few methods to perform HTTP requests via a user_agent attribute / method (which is required, and could be provided by Net::Async::Webservice::Common::WithUserAgent or any other means).

Failures (both during connection, and as signaled by the HTTP response codes) are wrapped in Net::Async::Webservice::Common::Exception::HTTPError and returned as failed futures. On success, the future yields the decoded content of the response.

ATTRIBUTES

ssl_options

Optional hashref, its contents will be passed to user_agent's do_request method.

METHODS

request

  $c->request($http_request) ==> $decoded_content

Performs the given request via the user_agent, with fail_on_error set; if the request succeeds, the returned future will yield the decoded content of the response. If the request fails, the future will fail with a two-element failure: a Net::Async::Webservice::Common::Exception::HTTPError and the string 'webservice'.

post

  $c->post($url,$body) ==> $decoded_content

Shortcut to submit a very basic POST request. The $body will be UTF-8 encoded, no headers are set. Uses "request" to perform the actual request.

get

  $c->get($url) ==> $decoded_content

Shortcut to submit a very basic GET request. No headers are set. Uses "request" to perform the actual request.

AUTHOR

Gianni Ceccarelli <gianni.ceccarelli@net-a-porter.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Net-a-porter.com.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.